Apache SNI: plusieurs certificats SSL sur une adresse IP
Aujourd'hui, je suis en train de configurer Apache pour exécuter les deux domaines, chacun avec leur propre certificat SSL. De ce que j'ai lu c'est pris en charge par la SNI aussi longtemps que mon Apache est configuré avec une version récente de OpenSSL. J'ai vérifié qu'elle est:
[notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.7 with Suhosin-Patch mod_ssl/2.2.22 OpenSSL/1.0.1 configured -- resuming normal operations
Je pensais que j'avais réussi à mettre en place le deuxième domaine et certificat, mais lorsque je tente de visiter le deuxième domaine dans google chrome, j'obtiens l'erreur suivante:
You attempted to reach example2.com, but instead you actually reached a server identifying itself as example1.com.
ce post semble plus proche de mon problème:
hébergement de plusieurs SSL cert sur apache
mais de ce que je peux dire à mon serveur est déjà configuré correctement (il n'est évidemment pas!)
J'ai les directives suivantes dans mon fichier conf pour example2.com
ServerName example2.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/example2.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/example2.com.key
il ressemble à droite pour moi. alors, pourquoi est-apache servir exemple1 cert lorsque je visite exemple2?
OriginalL'auteur Dan Pouliot | 2013-07-31
Vous devez vous connecter pour publier un commentaire.
s'avère domaine 1 a été configuré comme
J'utilise webmin, qui ne révèle que des détails lorsque vous affichez la directive directement.
changeant * a fait partie de la solution, mais a introduit de certains autres problèmes. Je pense que je vais punt et de faire IP basé sur le protocole SSL.
OriginalL'auteur Dan Pouliot
Je ajouter ce pour les ports.conf (Apache/2.2.22)
Vous pouvez lire les détails dans ce post
OriginalL'auteur 689
Il n'est pas possible d'avoir un SSL de domaine sur la même adresse ip.
contexte
Lorsqu'un client de communiquer avec un site web https toutes les communications sont crypte avec la clé publique du site (certificat ssl). Seule la clé privée associé à la clé publique peut déchiffrer la requête http. fondamentalement, c'est la façon dont https travail.
C'est pourquoi dans votre virtual host, vous pouvez définir pour chaque site web ssl le certificat et la clé
VirtualHost Nom de la base et SSL
Lorsque vous utilisez VirtualHost nom de la base de , quand apache recevoir une demande d'un client, le serveur lit la demande et de regarder le nom de domaine demandé. Lorsque le Nom de Domaine est identifié apache lire virtuahost instruction et de retourner le bon site web.
Quand apache recevoir une demande SSL , le système ne peut pas déchiffrer le message, car apache besoin d'utiliser le SSLCertificateKeyFile définis dans le Virtualhost, mais de savoir qui virtualhost pour l'utiliser, il faut être capable de déchiffrer le message ....
Car apache ne sais pas comment faire pour traiter votre demande et le système retourne le premier virtualhost traitées.
C'est pourquoi vous devez utiliser des VirtualHost ip de la base de que qu'est-ce que l'utiliser dans l'exemple :
hébergement de plusieurs SSL cert sur apache
Vous avez 2 ip 1.1.1.1 et 2.2.2.2
VirtualHost Nom de la base et certificat SSL wildcard
Si la clé privée ET la clé publique (certificat ssl) sont les mêmes pour tous les domaine, apache sera en mesure de déchiffrer la communication. Cette situation d'ajouter uniquement lorsque vous utilisez un certificat générique pour un domaine. exemple , si vous avez un caractère générique *.domain.com vous pouvez définir des VirtualHost nom de la base, comme ce
Cette configuration de travail parce que, quel que soit le domaine, apache utiliser la même clé privée pour décrypter la communication de sorte que le système sera en mesure de sélectionner le bon VirtualHost réglage.
Avoir une belle journée.
Pour répéter ce que le commentaire précédent dit, il EST possible, à l'aide de la SNI. Ma question est pourquoi mon SNI configuration est un échec.
OriginalL'auteur Xerus