2010-06-14 6 views
5

Wir haben eine Website www.name1.domain.com, für die wir erfolgreich ein SSL-Zertifikat erstellt und implementiert haben. Wir fügten dann eine andere Seite hinzu, www.name2.domain.com, und sehen etwas seltsames Verhalten in IE7 und IE8 (Überraschung!).SSL-Zertifikat stimmt nicht überein in IE 7+, OK in Firefox 3.6+

Grundsätzlich meldet IE7,8 eine Abweichung des Hostnamens, wenn wir zu https://www.name2.domain.com/ gehen. Wenn ich dieses Zertifikat in IE für diese Domäne hinzufüge und anzeigen, ist der Hostname falsch, gehört aber zum älteren Hostnamen, d. H. Www.name1.domain.com.

Firefox hat dieses Problem nicht und nimmt den korrekten Hostnamen www.name2.domain.com für die zweite Website ohne Problem auf.

Irgendwelche Ideen, warum IE misbehavin ist (außer für die frechen diejenigen (-:)

Dank

KM

+0

Ich kann nicht verstehen, was Sie sagen. Was genau ist im Zertifikat? Von wie vielen Zertifikaten reden wir? Ein? Zwei? –

+0

Es gibt 2 Hosts - www.name1.domain.com & www.name2.domain.com - mit einem SSL-Zertifikat, das in Apache konfiguriert ist. Wenn ich auf https://www.name1.domain.com gehe und auf das Zertifikat schaue, ist der allgemeine Name für den Server www.name1.domain.com entweder in IE oder Firefox. So weit, ist es gut. Wenn ich im IE zu https://www.name2.domain.com gehe, sagt IE, dass es ein "Es gibt ein Problem mit dem Sicherheitszertifikat dieser Website." Ich fahre fort, um die Seite zu sehen, aber IE zeigt einen "Certificate Error" an. Das Zertifikat zeigt mir, dass es an www.name1.domain.com ausgegeben wurde, wenn es www.name2.domain.com sein sollte. HTH & danke für deine Zeit! –

Antwort

7

Ihr Problem ist, dass Internet Explorer unter Windows XP (und wahrscheinlich auch andere Software) nicht SNI-fähig ist.

Ich bin gerade in das gleiche Problem gerannt - im Grunde Firefox und Chrome sind in Ordnung und erhalten das richtige Zertifikat, aber Internet Explorer nicht.Dann habe ich sah es ein wenig und sah this auf Wikipedia unter anderem:

Browser mit Unterstützung für TLS Server Name Indication [7] Internet Explorer 7 oder höher, Windows Vista oder höher. Funktioniert nicht auf Windows XP, auch Internet Explorer 8.

Also, Apache/openSSL Combo ist SNI-fähig und kann dies tun, aber Windows XP ist es nicht.

Meine Lösung ist, dass ich die primäre Subdomain zuerst in der VirtualHost-Konfiguration und die sekundäre weniger setzen. Zumindest gibt es weniger Erklärung für Kunden, warum dies auftaucht. Ich weiß nicht, ob es für Sie funktionieren würde.

+2

P.S. Ich möchte nur meine Nutzer anschreien und ihnen sagen, dass sie bereits Chrome verwenden sollen, um Himmels willen! – Zlatko

2

Firefox unterstützt SSL über den gleichen Port, 443 (mit dem gleichen läuft?! IP) zu zwei virtuellen Hosts (in Apache), aber IE7 nicht.

http://www.eggheadcafe.com/software/aspnet/36069240/sni-support.aspx

====

http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#vhosts2

Warum ist es nicht möglich Namensbasierte Virtual Hosting zu verwenden, um verschiedene SSL virtuelle Hosts zu identifizieren? Namenbasiertes virtuelles Hosting ist eine sehr beliebte Methode zur Identifizierung verschiedener virtueller Hosts. Damit können Sie für viele verschiedene Standorte die gleiche IP-Adresse und die gleiche Portnummer verwenden. Wenn Benutzer zu SSL wechseln, ist es naheliegend anzunehmen, dass die gleiche Methode verwendet werden kann, um viele verschiedene virtuelle SSL-Hosts auf demselben Server zu haben.

Es ist eher ein Schock zu erfahren, dass es unmöglich ist.

Der Grund ist, dass das SSL-Protokoll eine separate Schicht ist, die das HTTP-Protokoll kapselt. Die SSL-Sitzung ist also eine separate Transaktion, die vor Beginn der HTTP-Sitzung stattfindet. Der Server erhält eine SSL-Anfrage an IP-Adresse X und Port Y (normalerweise 443). Da die SSL-Anforderung kein Host: -Feld enthält, kann der Server nicht entscheiden, welcher SSL-virtuelle Host verwendet werden soll. In der Regel wird nur die erste gefunden, die mit der angegebenen Port- und IP-Adresse übereinstimmt.

Sie können natürlich namensbasiertes virtuelles Hosting verwenden, um viele virtuelle Hosts ohne SSL zu identifizieren (z. B. alle an Port 80) und dann einen einzelnen virtuellen SSL-Host (an Port 443). Wenn Sie dies tun, müssen Sie jedoch sicherstellen, dass die Nicht-SSL-Portnummer in die NameVirtualHost-Direktive eingefügt wird, z.

Namevirtualhost 192.168.1.1:80 Andere Abhilfe Lösungen gehören:

Verwendung separater IP-Adressen für verschiedene SSL-Hosts. Verwenden unterschiedlicher Portnummern für verschiedene SSL-Hosts.

+0

Paul, kannst du mir sagen, warum Chrome und Firefox das richtige Zertifikat bekommen und Internet Explorer nicht? Mit mehreren SSL-Hosts? – Zlatko

Verwandte Themen