Comme vous avez pu le constater si vous avez tenté la configuration de plusieurs virtualhosts sécurisés par SSL sous Apache2, Apache2 indique une erreur telle que :
[warn] vhost2 VirtualHost overlap on port 443, the first (vhost1) has precedence
Si vous ne disposez pas des avertissements, vous pourrez voir sur un navigateur une alerte de sécurité pour tout virtualhost SSL autre que celui par défaut, en effet, ce sera toujours le premier certificat SSL qui sera envoyé si vous utilisez mod_ssl (qui repose sur OpenSSL), la librairie par défaut.
Le support SNI, soit Server Name Indication, dans les librairies SSL. Cette option n'est pas activée par défaut dans OpenSSL.
Lorsqu'un client se connecte au serveur web en HTTPS, la connexion SSL est établie avant de connaitre le nom d'hôte cible, donc le certificat SSL qui est envoyé pour établir la connexion est toujours celui par défaut.
Dans OpenSSL, le support SNI a été intégré dans les versions supérieures à 0.9.8k, cependant, il n'est pas activé par défaut, il est nécessaire de recompiler OpenSSL pour en profiter.
Une autre librairie, GnuTLS, en dispose nativement, elle peut donc être utilisée directement pour créer des virtualhosts SSL sécurisés disposant chacun de leur propre certificat SSL.
La problématique ainsi que les prérequis pour utiliser OpenSSL avec SNI et Apache2 est expliquée sur le wiki d'Apache.org.
Si recompiler les deux programmes ne vous tente pas, vous pouvez abandonner mod_ssl au profit de mod_gnutls, installez d'abord le paquet :
apt-get install libapache2-mod-gnutls
Désactivez SSL et activez GnuTLS :
a2dismod ssl a2enmod gnutls
Enfin configurez les virtualhosts avec les certificats :
<IfModule mod_ssl.c> ... </IfModule>
<VirtualHost *:443> ServerName domain1.tld DocumentRoot /var/www/domain1 [...] GnuTLSEnable on GnuTLSExportCertificates on GnuTLSCacheTimeout 500 GnuTLSCertificateFile /etc/ssl/certs/domain1.crt #GnuTLSClientCAFile /etc/ssl/ca.gandi.net.cert GnuTLSKeyFile /etc/ssl/private/domain1.key #GnuTLSPriorities NONE:+AES-128-CBC:+ARCFOUR-128:+RSA:+SHA1:+MD5:+COMP-NULL:$ GnuTLSPriorities NORMAL # SSL Protocol Adjustments: BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force$ [...] </VirtualHost>
Source : Multiple SSL certificates on a single IP/port using mod_GnuTLS