hamburger icon
  • language
back icon Précédent
Choisissez votre langue
Type de contenu

Base de Connaissances

Utilisation de plusieurs certificats SSL dans Apache avec une seule adresse IP

Solution ID : TL648
Last Modified : 08/25/2026

À propos de l’extension TLS Server Name Indication (SNI)

Lorsque les administrateurs de sites web et le personnel informatique sont limités à l’utilisation d’un seul certificat SSL par socket (combinaison d’une adresse IP et d’un socket), les coûts peuvent être élevés. Cette restriction les oblige à acheter plusieurs adresses IP auprès de leur hébergeur de domaine pour les sites web HTTPS standard ou à acheter du matériel leur permettant d’utiliser plusieurs cartes réseau.

Cependant, avec Apache v2.2.12 et OpenSSL v0.9.8j ou versions ultérieures, vous pouvez utiliser une extension du protocole TLS (Transport Layer Security) appelée SNI. SNI permet de sécuriser plusieurs sites Apache à l’aide d’un seul certificat SSL et d’utiliser plusieurs certificats SSL pour sécuriser différents sites web sur un même domaine (par exemple, www.yourdomain.com, site2.yourdomain.com) ou sur plusieurs domaines (www.domain1.com, www.domain2.com), le tout à partir d’une seule adresse IP. Les avantages de SNI sont évidents: vous pouvez sécuriser davantage de sites web sans acheter d’adresses IP supplémentaires ni de matériel supplémentaire.

Cette fonctionnalité étant relativement récente dans Apache, les navigateurs ne prennent en charge SNI que depuis peu. La plupart des principaux navigateurs de bureau et mobiles actuels prennent en charge SNI. Une exception notable est qu’aucune version d’Internet Explorer sous Windows XP ne prend en charge SNI. Pour plus d’informations sur les navigateurs prenant en charge SNI, consultez Prise en charge de SNI par les navigateurs.

Pour utiliser SNI avec Apache, assurez-vous d’avoir suivi les instructions de la page Installation SSL sur Apache. Suivez ensuite les étapes indiquées sur cette page.

Configurer SNI avec Apache

Pour utiliser des certificats SSL supplémentaires sur votre serveur, vous devez créer un autre hôte virtuel. Conformément aux bonnes pratiques, nous vous recommandons de sauvegarder votre fichier .conf existant avant de poursuivre. Vous pouvez créer un nouvel hôte virtuel dans votre fichier .conf existant ou créer un nouveau fichier .conf pour le nouvel hôte virtuel. Si vous créez un nouveau fichier .conf, ajoutez la ligne suivante à votre fichier .conf existant:

Include my_other_site.conf

Ensuite, dans la directive NameVirtualHost, indiquez l’adresse IP publique de votre serveur, *:443 ou tout autre port que vous utilisez pour SSL (voir l’exemple ci-dessous).

Faites ensuite pointer SSLCertificateFile, SSLCertificateKeyFile et SSLCertificateChainFile vers les emplacements des fichiers de certificat de chaque site web, comme indiqué ci-dessous:

NameVirtualHost *:443

<VirtualHost *:443>ServerName www.yoursite.com
DocumentRoot /var/www/site
SSLEngine on
SSLCertificateFile /path/to/www_yoursite_com.crt SSLCertificateKeyFile /path/to/www_yoursite_com.key SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>


<VirtualHost *:443>
ServerName www.yoursite2.com DocumentRoot /var/www/site2
SSLEngine on
SSLCertificateFile /path/to/www_yoursite2_com.crt SSLCertificateKeyFile /path/to/www_yoursite2_com.key SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>

Si vous disposez d’un certificat SSL Wildcard ou multidomaine, tous les sites web utilisant le même certificat doivent référencer la même adresse IP dans la section VirtualHost adresse_IP:443, comme dans l’exemple ci-dessous:


<VirtualHost 192.168.1.1:443>
ServerName www.domain.com DocumentRoot /var/www/
SSLEngine on
SSLCertificateFile /path/to/your_domain_name.crt SSLCertificateKeyFile /path/to/your_private.key SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>


<VirtualHost 192.168.1.1:443>
ServerName site2.domain.com DocumentRoot /var/www/site2
SSLEngine on
SSLCertificateFile /path/to/your_domain_name.crt SSLCertificateKeyFile /path/to/your_private.key SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>

Redémarrez maintenant Apache et accédez au site HTTPS à partir d’un navigateur prenant en charge SNI. Si la configuration est correcte, vous pourrez accéder au site sans avertissement ni problème. Vous pouvez ajouter autant de sites web ou de certificats SSL que nécessaire en suivant la procédure ci-dessus.