GNU/Linux >> Tutoriels Linux >  >> Linux

Utilisation de SNI pour héberger plusieurs certificats SSL dans Apache

L'identification du nom de serveur (SNI) est une extension des protocoles Secure Socket Layer (SSL) et TransportLayer Security (TLS) qui vous permet d'héberger plusieurs certificats SSL sur une adresse IP (Internet Protocol) unique. Cet article explique comment utiliser SNI pour héberger plusieurs certificats SSL dans Apache®.

Prérequis

Votre serveur doit répondre aux exigences suivantes pour utiliser SNI :

  • Apache v2.2.12 ou version ultérieure
  • OpenSSL® v 0.9.8j ou version ultérieure
  • mod_ssl doit être installé

Les systèmes d'exploitation suivants prennent en charge SNI sans modifications supplémentaires :

  • Red Hat® Enterprise Linux® (RHEL) 6 et versions ultérieures
  • Fedora® 10 et versions ultérieures
  • CentOS® 6
  • Debian® 6 et versions ultérieures
  • Ubuntu® 10.04 et versions ultérieures

Les systèmes d'exploitation suivants nécessitent qu'Apache, OpenSSL et mod_ssl soient compilés avec les versions appropriées :

  • Red Hat Enterprise Linux 5
  • Centos 5

Vérifier que mod_ssl est installé

Avant d'utiliser SNI, vérifiez que mod_ssl est installé en exécutant la commande suivante :

RHEL, CentOS et Fedora

yum list installed | grep mod_ssl

Systèmes d'exploitation Debian et Ubuntu

dpkg -s apache2.2-common

Si mod_ssl n'est pas installé, utilisez la commande suivante pour l'installer :

RHEL, CentOS et Fedora

yum install mod_ssl

Systèmes d'exploitation Debian et Ubuntu

Pour les systèmes d'exploitation Debian et Ubuntu, installez mod_ssl à l'aide de la commande suivante :

 apt-get install apache2.2-common

Activez ensuite le module en exécutant a2enmod ssl; /etc/init.d/apache2 reload .

Configurer les vhosts

Ajoutez les lignes suivantes dans votre fichier de configuration Apache racine (apache2.conf ou httpd.conf ):

# Ensure that Apache listens on port 443
Listen 443

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:443

# Accept connections for these vhosts from non-SNI clients
SSLStrictSNIVHostCheck off

Dans le fichier de configuration vhost de chaque site, vous devez ajouter la configuration de votre hôte virtuel. Il devrait ressembler aux exemples suivants :

Premier serveur virtuel :

<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

</Virtual Host>

Deuxième serveur virtuel :

<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

</Virtual Host>

Vous pouvez tester la configuration avec un certificat auto-signé en utilisant la commande suivante :

openssl req -new -nodes -keyout mykey.key -out mycert.cer -days 3650 -x509

Spécifiez le nom de domaine dans le nom commun section, puis redémarrez Apache.

Navigateurs pris en charge

SNI est pris en charge par la plupart des navigateurs, mais les navigateurs plus anciens tels qu'Internet Explorer® 6 et tout navigateur Windows® XP® ne prennent pas en charge SNI.

Navigateurs de bureau

  • Internet Explorer 7 et versions ultérieures

  • Firefox® 2 et versions ultérieures

  • Opera 8 avec TLS 1.1 activé

  • Google Chrome® :

    • Compatible avec Windows XP sur Chrome 6 et versions ultérieures
    • Pris en charge sur Vista et versions ultérieures par défaut
    • Compatible avec OS X 10.5.7 dans Chrome 5.0.342.0 et versions ultérieures
  • Chromium® 11.0.696.28 et versions ultérieures

  • Safari 2.1 et versions ultérieures (nécessite OS X 10.5.6 et versions ultérieures ou Windows Vista et versions ultérieures).

Remarque : Aucune version d'Internet Explorer sur Windows XP ne prend en charge SNI.

Navigateurs mobiles

  • Safari mobile pour iOS 4.0 et versions ultérieures
  • Android 3.0 (Honeycomb) et versions ultérieures
  • Windows Phone 7 et versions ultérieures

Navigateurs non pris en charge

Les navigateurs non pris en charge chargent le certificat SSL du premier vhost chargé par Apache. Vous pouvez afficher une erreur 403 à la place en ajoutant la ligne suivante au fichier de configuration Apache (apache2.conf , ou httpd.conf ):

SSLStrictSNIVHostCheck on

Linux
  1. Utilisation de mod_cluster dans Apache

  2. Apache – Créer un certificat SSL *.local ?

  3. Comment renommer plusieurs fichiers à l'aide de Find ?

  4. Comment configurer un sous-domaine ou héberger plusieurs domaines à l'aide de nginx sur le serveur Linux

  5. Plusieurs bibliothèques glibc sur un seul hôte

Comment héberger un site Web en utilisant Apache avec SSL dans Rocky Linux

Comment installer Apache pour héberger un site Web avec SSL dans AlmaLinux

Installer des certificats SSL sur un serveur Windows

Comment installer Apache dans CentOS 8

Héberger plusieurs sites Web sur un seul serveur avec Apache sur Ubuntu 18.04

Certificats maîtres auto-signés sur Windows et Linux