2010-06-14 3 views
5

Nous avons un site www.name1.domain.com pour lequel nous avons créé et implémenté avec succès un certificat SSL. Nous avons ensuite ajouté un autre site, www.name2.domain.com, et voyons un comportement étrange dans IE7 et IE8 (surprise!). Fondamentalement, IE7,8 signale une discordance de nom d'hôte lorsque nous passons à https://www.name2.domain.com/. Lorsque j'ajoute et affiche ce certificat dans IE pour ce domaine, le nom d'hôte est incorrect, mais appartient à l'ancien nom d'hôte, à savoir, www.nom1.domaine.com.Incompatibilité de certificat SSL dans IE 7+, OK dans Firefox 3.6+

Firefox n'a pas ce problème et récupère le nom d'hôte correct www.name2.domain.com pour le deuxième site sans problème.

Toutes les idées pourquoi IE est misbehavin (à part pour les impertinentes (-:)

Merci

KM

+0

Je ne comprends pas ce que vous dites. Qu'est-ce, exactement, dans le certificat? De combien de certificats parlons-nous? Un? Deux? –

+0

Il ya 2 hôtes - www.name1.domain.com et www.name2.domain.com - avec un certificat SSL chaque config'd dans Apache. Quand je vais à https://www.name1.domain.com et regarde le cert, le nom commun pour le serveur est www.name1.domain.com soit dans IE ou Firefox. Jusqu'ici tout va bien. Quand j'accède à https://www.name2.domain.com dans IE, IE dit qu'il y a un "Il y a un problème avec le certificat de sécurité de ce site Web." Je continue à voir le site, mais IE affiche une "erreur de certificat" Regarde le certificat me montre qu'il l'a émis à www.name1.domain.com, quand il devrait être www.name2.domain.com. HTH & merci pour votre temps! –

Répondre

7

Votre problème est que Internet Explorer sous Windows XP (et probablement aussi d'autres logiciels) n'est pas compatible SNI.

Je viens de rencontrer le même problème - en gros Firefox et Chrome sont corrects et obtiennent le bon certificat, mais pas Internet Explorer.Ensuite, je l'ai regardé vers le haut un peu et vu this sur Wikipedia, entre autres:

navigateurs compatibles avec indication du nom du serveur TLS [7] Internet Explorer 7 ou une version ultérieure, sous Windows Vista ou supérieur. Ne fonctionne pas sur Windows XP, même Internet Explorer 8.

Ainsi, votre combo apache/OpenSSL est capable et peut SNI ce faire, mais Windows XP n'est pas. Ma solution est que je place d'abord le sous-domaine primaire dans la configuration VirtualHost, et le secondaire moins. Au moins, il y a moins d'explications aux clients sur les raisons pour lesquelles cela apparaît. Je ne sais pas si cela fonctionnerait pour vous si.

+2

P.S. Je veux juste crier à mes utilisateurs et leur dire de commencer à utiliser Chrome déjà, pour l'amour du ciel! – Zlatko

2

Firefox prend en charge l'exécution SSL sur le même port, 443 (en utilisant le même?! IP) à deux hôtes virtuels (Apache), mais IE7 ne fonctionne pas.

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

====

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

Pourquoi est-il pas possible d'utiliser l'hébergement virtuel basé sur le nom-pour identifier les différents hôtes virtuels SSL? L'hébergement virtuel basé sur le nom est une méthode très populaire d'identification de différents hôtes virtuels. Il vous permet d'utiliser la même adresse IP et le même numéro de port pour de nombreux sites différents. Quand les gens passent au SSL, il semble naturel de supposer que la même méthode peut être utilisée pour avoir beaucoup d'hôtes virtuels SSL différents sur le même serveur.

Il est plutôt choquant d'apprendre que c'est impossible.

La raison en est que le protocole SSL est une couche distincte qui encapsule le protocole HTTP. La session SSL est donc une transaction distincte, qui a lieu avant le début de la session HTTP. Le serveur reçoit une requête SSL sur l'adresse IP X et le port Y (généralement 443). Comme la requête SSL ne contient aucun champ Host:, le serveur n'a aucun moyen de décider quel hôte virtuel SSL utiliser. Habituellement, il utilisera simplement le premier qu'il trouve, ce qui correspond au port et à l'adresse IP spécifiés. Vous pouvez, bien sûr, utiliser l'hébergement virtuel basé sur le nom pour identifier de nombreux hôtes virtuels non-SSL (tous sur le port 80, par exemple) et avoir ensuite un seul hôte virtuel SSL (sur le port 443). Mais si vous faites cela, vous devez vous assurer de mettre le numéro de port non-SSL sur la directive NameVirtualHost, par exemple.

NameVirtualHost 192.168.1.1:80 Autres solutions de contournement comprennent:

L'utilisation d'adresses IP distinctes pour différents hôtes SSL. Utiliser différents numéros de port pour différents hôtes SSL.

+0

Paul, pouvez-vous me dire alors pourquoi Chrome et Firefox obtiennent le bon certificat et pas Internet Explorer? Avec plusieurs hôtes SSL? – Zlatko