SNI mit Apache unter Windows

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

SNI mit Apache unter Windows

Postby dichternebel » 31. January 2014 22:35

Hallo Forum,

ich betreibe seit einiger Zeit XAMPP in der Version 1.7.3 und zwar absolut stabil.

Ich versuche nun allerdings seit einigen Abenden den Apache dazu zu bewegen SNI (NameBasedSSLVHostsWithSNI), also verschiedene SSL-VHosts unter einer IP, zu handlen.

Leider verhält es sich so, dass immer nur der erste Eintrag in der .conf-Datei greift.
Es scheint also nicht wirklich zu funktionieren mit SNI...
Laut Infos sollte meine Apache-Version (2.2.14) das eigentlich können.

Aber ich befürchte, dass es eher etwas mit TLS bzw. OpenSSL zu tun haben könnte. Vielleicht ist es auch ein conf-Problem, aber ich habe keine wirklichen Beispiele gefunden, in denen vhosts "mixed" vorkommen. Also einige mit und einige ohne SSL...

Hat irgendjemand von euch Erfahrungen mit SNI unter Windows (Server 2008R2)?
Wo kann ich Infos in meinem System finden, ob SNI überhaupt greift bzw. aktiviert ist?

Beste Grüße
Sascha
dichternebel
 
Posts: 5
Joined: 31. January 2014 22:18
XAMPP Version: 1.7.7
Operating System: Windows Server 2008 R2

Re: SNI mit Apache unter Windows

Postby Nobbie » 31. January 2014 23:43

dichternebel wrote:Leider verhält es sich so, dass immer nur der erste Eintrag in der .conf-Datei greift.


Und das äußert sich wie?

dichternebel wrote:Wo kann ich Infos in meinem System finden, ob SNI überhaupt greift bzw. aktiviert ist?


Ich habe gerade zum ersten Mal überhaupt davon gehört und habe dann einfach den Begriff "NameBasedSSLVHostsWithSNI" eingegeben und sofort diese super Beschreibung bekommen (die auch diese konkrete Frage beantwortet): http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI
Nobbie
 
Posts: 6585
Joined: 09. March 2008 13:04

Re: SNI mit Apache unter Windows

Postby dichternebel » 01. February 2014 00:11

Hi Nobbie,
danke für Deine Antwort.

Die URL wollte ich in meiner initialen Post auch einfügen... aber Newbies dürfen das nicht, weil zu "spammy".
Ich habe gerade noch ein bisschen getestet und es scheint prinzipiell zu funktionieren, nur ist mein Problem offensichtlich, dass alle Domains, die keinen Eintrag auf dem Port 443 haben, sich den ersten Eintrag der conf-Datei greifen. So wie es aussieht, muss ich mich also selbst darum kümmern, dass bestimmte Domains nicht auf 443 hören bzw. evtl. wieder auf 80 umleiten.
Allerdings habe ich keine Idee, wie man das sauber machen soll. Denn bin ich erst einmal im SSL-Kontext kann ich den doch nicht einfach wieder auf Nicht-SSL umrouten, oder?
Zumal ich ja nicht für die Nicht-SSL-Domains ein SSL-Zertifikat installieren möchte, nur um wieder auf nicht SSL umzurouten... :wink:
Es wäre natürlich möglich, eine weitere IP auf den Server zeigen zu lassen und so alle Domains mit SSL auf der einen und alle ohne SSL auf der anderen laufen zu lassen, aber das ist mir einfach zu teuer...

Irgendwelche Ideen?
dichternebel
 
Posts: 5
Joined: 31. January 2014 22:18
XAMPP Version: 1.7.7
Operating System: Windows Server 2008 R2

Re: SNI mit Apache unter Windows

Postby Nobbie » 01. February 2014 11:11

dichternebel wrote:So wie es aussieht, muss ich mich also selbst darum kümmern, dass bestimmte Domains nicht auf 443 hören bzw. evtl. wieder auf 80 umleiten.


Was ja nicht wirklich ein Problem darstellt.

dichternebel wrote:Allerdings habe ich keine Idee, wie man das sauber machen soll. Denn bin ich erst einmal im SSL-Kontext kann ich den doch nicht einfach wieder auf Nicht-SSL umrouten, oder?


Immer langsam, Du denkst irgendwie völlig falsch. Zunächst einmal bist auf Port 443. Sonst gar nichts. Ob das ein "SSL-Kontext" wird oder unverschlüsselt ist, wird im VirtualHost festgelegt. Wenn da nichts steht, ist da auch nichts. Dann ist das nur ein HTTP Request via Port 443, stinknormal. Ohne Verschlüsselung.

Die Frage ist grundsätzlich, wieso definierst Du überhaupt VirtualHosts auf 443, wenn dort kein SSL aktiv sein soll? Dann lass das doch sein. Dann landet (genau wie jetzt, aber es ist einfach transparenter) der Anwender grundsätzlich beim Default-Virtualhost, wenn er https://.... angibt (also gesichertes Protokoll), aber auf der Domain ist halt nichts. Und im dem Default-Virtualhost leitest Du entweder um oder gibst eine Fehlermeldung aus. Als Default-Virtualhost (das ist immer der erste VirtualHost in einer Konfiguration) sollte man immer einen eigenen Aktionszweig festlegen, das ist der Fall, wenn der Anwender eine Domain:Port anfordert, die Du nicht unterstützt.

Du könntest beispielsweise in dem Default-Virtualhost quasi als einzige Zeile eintragen:

Code: Select all
Redirect / http://meine.hauptdomain.de/


Dann landet alles auf Port 80 der Hauptdomain.
Nobbie
 
Posts: 6585
Joined: 09. March 2008 13:04

Re: SNI mit Apache unter Windows

Postby dichternebel » 01. February 2014 13:17

Nobbie wrote:Immer langsam, Du denkst irgendwie völlig falsch


Das hoffe ich ja auch! :wink: Ich wünschte mir, das Problem säße auch dieses mal wieder vor dem Monitor. Aber Fakt ist: es geht so nicht.
Ich habe Dein Beispiel probiert: Ich habe nur einen Eintrag in der conf-Datei für für einen Vhost, der auf Port 443 mit der Domain ssldomain.de lauschen soll.
Es gibt weitere Domains ohne Eintrag für :443, z.B. einedomain.de
Zuerst kommt die Default conf, dann alle Einträge für Port80-Vhosts und zu letzt die :443.

(Ich kann leider nicht mal einen Auszug meiner conf-Datei hier posten, weil meine Post dann schon wieder zu "spamy" aussieht :evil: )

Rufe ich im Browser https://ssldomain.de auf ist alles super. Die Domain-Inhalte werden korrekt angezeigt und die Verbindung verschlüsselt.
Rufe ich jedoch https://einedomain.de auf, wird nicht auf den Default bzw. den ersten Eintrag in der conf-Datei gesprungen, sondern auch wieder auf den Eintrag der :443.

Der Browser meckert dann, dass das Falsche Zertifikat geladen wurde (ist ja auch logisch) und es werden die Inhalte von ssldomain angzeigt. Was Kacke ist.
Ich habe schon verucht ein Redirect im Default VHost zu definieren, aber wenn der Browser schon mit https: ankommt, greift Default einfach nicht...
Und einen Default für 443 anlegen, wo ich SSL ausschalte und versuche zu redirecten führt bei mir dazu, dass der Apache nicht mehr startet. Wahrscheinlich weil ich es falsch mache oder es einfach nicht geht.

Ich bin ratlos. :cry:
dichternebel
 
Posts: 5
Joined: 31. January 2014 22:18
XAMPP Version: 1.7.7
Operating System: Windows Server 2008 R2

Re: SNI mit Apache unter Windows

Postby Nobbie » 01. February 2014 17:31

dichternebel wrote:Das hoffe ich ja auch! :wink: Ich wünschte mir, das Problem säße auch dieses mal wieder vor dem Monitor. Aber Fakt ist: es geht so nicht.


Nein, nein, sei beruhigt, das Problem sitzt nach immer noch vor dem Monitor.... (bin ich mir relativ sicher).

dichternebel wrote:Ich habe Dein Beispiel probiert: Ich habe nur einen Eintrag in der conf-Datei für für einen Vhost, der auf Port 443 mit der Domain ssldomain.de lauschen soll.
Es gibt weitere Domains ohne Eintrag für :443, z.B. einedomain.de
Zuerst kommt die Default conf, dann alle Einträge für Port80-Vhosts und zu letzt die :443.

(Ich kann leider nicht mal einen Auszug meiner conf-Datei hier posten, weil meine Post dann schon wieder zu "spamy" aussieht :evil: )


Dann hilft jetzt nichts, jetzt musst Du mir mindestens ansatzweise zeigen, welche VirtualHosts es genau gibt, ich blicke da oben nicht durch, bzw. wenn es so ist, wie ich es verstehe, ist es falsch. Also kopiere die zentralen Inhalte hier rein, notfalls streiche die SSL Angaben auf symbolische Kurzform zusammen. Nur mit Prosa "denn kommt die und denn kommt das" (und am Ende kommt der Weihnachtsmann oder auch der Osterhase) kann ich das nicht analysieren.

Und dann schauen wir weiter.
Nobbie
 
Posts: 6585
Joined: 09. March 2008 13:04

Re: SNI mit Apache unter Windows

Postby dichternebel » 01. February 2014 22:49

So, ich habe jetzt noch ein wenig recherchiert und bin mir sicher, dass es nicht so geht, wie ich es gerne würde.
Und mittlerweile ist mir auch klar, weshalb:

sstendal wrote:... The difference between http and https is that https requests are sent over an ssl-encrypted connection. The ssl-encrypted connection must be established between the browser and the server before the browser sends the http request...

Quelle: serverfault questions\429274\how-to-redirect-from-https-to-http-before-server-error

Kieron wrote:Keep in mind that the Rewrite engine only kicks in once the HTTP request has been received - which means you would still need a certificate, in order for the client to set up the connection to send the request over!

Quelle: stackoverflow questions\8371\how-do-you-redirect-https-to-http

Das bedeutet, dass ich entweder tatsächlich für jedes Redirect von https nach http ein gültiges Zertifikat benötigen würde, was natürlich völliger Quatsch wäre. Oder die einzig wirklich sinnvolle Lösung ist, dass ich eine zweite IP-Adresse verwende und alle Domains mit gültigem Zertifikat auf eine IP und die ohne SSL auf eine andere IP gruppiere.

Danke noch mal an Nobbie für die Unterstützung!

PS: Wieviele Posts braucht man eigentlich hier, bis man nicht mehr "spamy" ist und mal links posten darf... das nervt voll.
dichternebel
 
Posts: 5
Joined: 31. January 2014 22:18
XAMPP Version: 1.7.7
Operating System: Windows Server 2008 R2

Re: SNI mit Apache unter Windows

Postby dichternebel » 24. September 2014 16:21

So, nach langem Hin und Her und ohne eine Lösung für den Apache gefunden zu haben kommt nun hier die leider recht ernüchternde Lösung für die Verwendung von SNI: Windows Server 2012 R2 mit IIS 8.5

Bye bye Apache... :oops:
dichternebel
 
Posts: 5
Joined: 31. January 2014 22:18
XAMPP Version: 1.7.7
Operating System: Windows Server 2008 R2

Re: SNI mit Apache unter Windows

Postby Nobbie » 24. September 2014 19:08

Und?
Nobbie
 
Posts: 6585
Joined: 09. March 2008 13:04


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 9 guests