Jump to content
Froxlor Forum
  • 0

[solved] SSL IP Problem


virtualmarc

Question

Hallo,

 

ich habe einen Webserverhost mit Froxlor und 32 IP-Adressen.

 

In den Einstellungen von Froxlor habe ich SSL auf Aktiv gesetzt und eine Cipher angegeben. (Anfangs auch mal Zertifikatpfade, aber mittlerweile entfernt).

Einiger der IP's haben SSL aktiviert und ein eigenes Zertifikat (pro IP ein bestimmtes) zugewiesen.

Diese SSL IP's haben auch SSL vHosts denen auch ein Zertifikat zugewiesen wurde (das selbe wie zur passenden IP).

 

Gehe ich via https auf eine Domains drauf funktioniert es problemlos. Es wird das korrekte Zertifikat benutzt.

Gehe ich aber via https auf die IP's werden die Zertifikate der ersten IP (Haupt-IP des Servers unter der Froxlor l?uft) benutzt und nicht die der aufgerufenen IP.

 

Ich habe mir mal die Config Dateien angeguckt.

Sowohl unter den Domains als auch unter den IP's stehen die jeweils korrekten SSL Zertifikate.

Das Zertifikat von der Haupt-IP wird nur im IP-vHost dieser einen IP-Adresse und in den Domain vHosts von Froxlor (+ Services wie PHPMA, Webmail, Webftp) benutzt.

 

Jetzt ist meine Frage:

Woher bekommt der Apache2 Server f?r die Zusatz IP das Zertifikat von der Haupt IP obwohl in den vHosts das richtige Zertifikat gesetzt wurde? (und warum funktioniert es dann problemlos bei Domain vHosts?) Und wie l?se ich das Problem?

 

Damit jetzt nicht die Frage aufkommt: Warum l?sst du das nicht so, funktioniert doch mit den Domains?

Mir ist dieses Problem heute aufgefallen, als ich eine Android App entwickelt habe. Der Web-Request in Java kann kein SNI und hat somit das Zertifikat via IP abgefragt und da das Zertifikat der IP falsch war ist mir das ganze sch?n mit ner Exception weg geschmiert.

 

Danke f?r eure Antworten und viele Gr??e,

Marc

 

Edit:

Ich habe mittlerweile das Problem gefunden aber noch nicht die L?sung:

In der vHost Datei steht als ServerName der Hostname des Servers drin.

?nder ich dort den ServerName auf eine Domain die auf die IP zeigt so wird das korrekte Zertifikat benutzt.

Jetzt ist die Frage: Wie realisiere ich das in Froxlor?

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

Hallo,

 

sorry dass ich so lange nicht antworten konnte, war Beruflich etwas blockiert.

 

Mit den IP VHosts meine ich die folgenden:

10_froxlor_ipandport_XX.XXX.XX.XX.443.conf

 

Dort steht als ServerName der Hostname des Servers drin und als SSL Zertifikat das, was ich definiert habe als ich die IP in Froxlor angelegt habe.

Froxlor nimmt dort aber nicht die unter 

SSLCertificateFile /etc/apachessl/xxx/ssl.crt
SSLCertificateKeyFile /etc/apachessl/xxx/ssl.key
SSLCACertificateFile /etc/apachessl/startssl.ca.pem
SSLCertificateChainFile /etc/apachessl/startssl.sub.class2.server.ca.pem

definierten SSL Zertifikate, sondern die f?r den in ServerName definierten Host.

 

Standardm??ig tr?gt Froxlor dort den Hostnamen des Servers ein. Da unter dem bei mir Froxlor l?uft habe ich f?r die Default-IP und dem Froxlor Host auch ein SSL Zertifikat definiert.

?nder ich den ServerName vom Hostnamen auf die Domain der Seite f?r die das unter der IP in der oben angegebenen vhost Config angegebene Zertifikat g?ltig ist, so benutzt die IP das korrekte.

 

Somit h?ngt es nicht davon ab welches SSL Zertifikat im IP VHost (10_*.443.conf) definiert ist sondern welcher ServerName dort angegeben ist und welches Zertifikat hinter diesem ServerName steckt.

Link to comment
Share on other sites

So das ist der IP VHost wie er aktuell aussieht nachdem ich es gefixt habe:

 

10_froxlor_ipandport_84.200.81.26.443.conf

 

http://paste.modnet.eu/40

 

Man bemerke das 2. ServerName was den ersten ?bersetzt. (Habe ich mittels manuellen vhost Eintrag in Froxlor rein gesetzt).

Damit ist der ServerName gleich dem Namen der Webseite f?r die das Zertifikat ist und das Zertifikat f?r "MyIMG.be" wird geladen wenn man via https auf die IP geht oder mit einem Browser der kein SNI kann auf die Domain.

 

So sieht es aus wenn ich den manuellen vhost Eintrag weg lasse:

 

10_froxlor_ipandport_84.200.81.26.443.conf

 

http://paste.modnet.eu/41

 

Dabei wird als ServerName der Hostname des Webservers genommen. Geht man jetzt via https auf die IP wird das Zertifikat f?r "herbert.my-serv.eu" geladen. (Selbe passiert wenn man via https auf die Domain geht und der Browser kein SNI kann).

 

So sieht die vHost Datei f?r die Domain aus:

 

22_froxlor_ssl_vhost_myimg.be.conf

 

http://paste.modnet.eu/42

 

 

Da s?mtliche Browser die ich benutze SNI k?nnen ist mir das nie aufgefallen. Erst als ich mit der Entwicklung einer App angefangen ist und der Web Client unter Java mir weg geschmiert ist weil das Zertifikat ung?ltig war (bekam herbert.my-serv.eu statt myimg.be).

Browser die SNI k?nnen bekommen problemlos das Zertifikat aus der Domain vHost Datei, alle anderen machen nen Fallback auf die IP (was ja auch richtig ist). Nur wird dort nicht das angegebene Zertifikat geladen sondern das des ServerName.

 

 

Noch mal ganz kurz dargestellt bei Aufruf https://myimg.be:

 

Browser mit SNI:

Zertifikat aus 22_froxlor_ssl_vhost_myimg.be.conf ausgestellt f?r myimg.be => passt

 

Browser ohne SNI mit default Froxlor Config:

Fallback zu IP, bekommt Zertifikat ausgestellt auf ServerName. ServerName = herbert.my-serv.eu => invalid

 

Browser ohne SNI mit angepasstem ServerName in Config:

Fallback zu IP, bekommt Zertifikat ausgestellt auf ServerName. ServerName = myimg.be => passt

Link to comment
Share on other sites

Ganz einfach: IP/Port bearbeiten -> "Erstelle ServerName Eintrag" auf "Off" setzen und in die "Custom Vhost Settings" einfach "ServerName myimg.be" schreiben...klappt bei mir zumindest.

ACHTUNG allerdings mit dem docroot...auch der user ist dann nicht der kunde, sondern das panel...das kann man nicht ?ndern

Link to comment
Share on other sites

Ich hab jetzt mal den Haken weg genommen, dass der den ServerName setzen soll und auch mal den vhost container f?r die ip weg genommen.

Direkter Aufruf via IP geht nicht mehr, und ich bekomme jetzt das richtige Zertifikat, also passt :)

Danke!

 

Vielleicht auch eine Idee f?r eine n?chste Version: Zuordnen einer IP zu einem Benutzer, sodass der Zugriff via IP nicht mit dem froxlor user stattfindet sondern mit dem kundenaccount. (Au?er es wurde keiner zugeordnet)

Link to comment
Share on other sites

Am besten sagst du uns die vhost-datei-namen dazu, das hilft uns zu wissen, um welchen vhost es sich handelt. Bei den 10_*.conf vhosts handelt es sich um die IP/Port eintr?ge, hierf?r wird nat?rlich der bei der Installation angegebene Froxlor-Hostname verwendet (andere angaben sind nicht m?glich). So ganz habe ich deine Konstellation auch nicht durchgeblickt, vllt gibst du uns etwas explizitere Daten, sost kommt man durcheinander wenn das alles nur so "theoretisch" ist.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...