Comment utiliser les mêmes Apache2 Server 2 différents certificats à l'aide VirtualHost?

StackOverflow https://stackoverflow.com/questions/1548288

  •  20-09-2019
  •  | 
  •  

Question

Je reçois un certificat de Gandi pour un domaine www.mondomaine.fr Mais pour sql.mondomaine.fr je voulais utiliser un certificat SSL auto-signé.

Si je sql.mondomaine.fr actif, le www.mondomaine.fr utilise le certificat auto-signé à la place du Gandiś un.

Si je sql désactivera. tout fonctionne bien.

Comment puis-je gérer l'utilisation de certificat différent?

Il coutures que la première configuration VirtualHost prend pour chaque VirtualHost SSL.

Merci pour votre aide.

Voici ma configuration:

Pour PHPMyAdmin:

<VirtualHost *:443>
    # Chemin vers les données web
    DocumentRoot /usr/share/phpmyadmin

    ServerName sql.mondomaine.fr

    SSLEngine On
    SSLCertificateFile /etc/apache2/ssl/phpmyadmin.pem
</VirtualHost>

Pour mondomaine.fr

<VirtualHost *:443>
    ServerName www.mondomaine.fr
    DocumentRoot /var/www/mondomaine/
    CustomLog /var/log/apache2/secure_access.log combined

    SSLEngine on
    SSLCertificateFile /etc/ssl/mondomaine.fr.crt
    SSLCertificateKeyFile /etc/ssl/mondomaine.fr.key
    SSLCACertificateFile /etc/ssl/GandiStandardSSLCA.pem
    SSLVerifyClient None
</VirtualHost>

La configuration est correcte, car si le premier VirtualHost lu est PHPMyAdmin.pem ModSSL utiliser celui-ci et si elle est mondomaine.fr.crt le premier VirtualHost, Apache utiliser celui-ci.

Était-ce utile?

La solution

Vous êtes en cours d'exécution contre un problème général avec HTTP sur SSL - lorsqu'un client se connecte, il spécifie quel hôte il veut se connecter à l'aide de l'hôte: en-tête HTTP, mais qui ne vient que après la poignée de main SSL (lorsque le certificat est présenté) est terminée. Les versions récentes des extensions de support TLS (spécifié dans la RFC 4366) qui permettent au client de spécifier quel hôte, il a l'intention de se connecter au cours de la négociation SSL, avec l'intention spécifique de soutenir vhosts; pour citer le RFC:

"" »    TLS ne prévoit pas de mécanisme pour un client de dire un serveur de la    nom du serveur, il est en contact. Il peut être souhaitable pour les clients    de fournir ces informations pour faciliter les connexions sécurisées à    serveurs qui hébergent plusieurs serveurs « virtuels » à un seul sous-jacent    adresse réseau. "" "

Selon Wikipedia, les versions récentes de Firefox, Opera, IE, Chrome, Safari et soutenir cette extension; d'autres clients ne seraient toujours pas envoyer l'extension, et vous êtes hors de la chance là-bas. Vous devez également utiliser au moins TLS 1.1 pour activer le support des extensions.

Il y a quelques sur la façon de le mettre en place avec Apache; vous pouvez avoir à reconstruire OpenSSL et / ou Apache avec des options spécifiques, en fonction de votre configuration locale.

Autres conseils

Ses depens comment vous avez créé votre certificat. si vous l'avez acheté seulement pour le sous-domaine www ne fonctionnera pas pour sql. ce que vous devez faire est de faire pour permettre à une sous-domaine, mais ces certificats sont afaik plus cher.

D'autre part, vous pouvez utiliser votre propre ceritificate, il vous suffit de sûr de ce que vous mettez lorsque vous créez votre virtutalhost

<virtualhost XXX.XXX.XXX.XXX:443>
 serverName www.mondomaine.fr
 # Gandiś ceritificate
</virtualhost>

<virtualhost XXX.XXX.XXX.XXX:443>
 serverName sql.mondomaine.fr
 # your own certificate stuff
</virtualhost>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top