Plusieurs certificats SSL avec différents VirtualHosts

Nous allons installer 2 certificats SSL différents pour deux virtualhosts différents, sur un serveur debian / apache2 ne disposant que d’une IP.

  • Activer le module ssl  :

a2enmod ssl

  • Modifier le fichier /etc/apache2/ports.conf

<IfModule mod_ssl.c>
    Listen 443
    NameVirtualHost *:443
</IfModule>

  • Création du répertoire pour le site exempleA

mkdir /etc/ssl/fooA
cd /etc/ssl/fooA

  • On génére la  clé (sans passphrase pour ne pas avoir à la retaper au redémarrage automatique d’apache) :
    openssl genrsa -out www.fooA.com.key 2048
  • On génère le CSR
    openssl req -new -key www.fooA.com.key -out www.exampleA.com.csr
  • On génère le certificat
    openssl x509 -req -days 365 -in www.fooA.com.csr -signkey www.fooA.com.key -out www.fooA.com.crt
  • On règle les droits au minimum sur ces fichiers
    chmod 600 *
  • éditer ainsi le VirtualHost du sitefooA

<VirtualHost *:443>
    DocumentRoot /home/fooA/www
    ServerName www.fooA.com
        SSLEngine on
        SSLCertificateFile /etc/ssl/exampleA/www.fooA.com.crt
        SSLCertificateKeyFile /etc/ssl/exampleA/www.fooA.com.key
        SSLVerifyClient None
        SSLOptions +StdEnvVars
</VirtualHost>

  • Création du répertoire pour le site fooB

mkdir /etc/ssl/fooB
cd /etc/ssl/fooB

  • On génére la  clé (sans passphrase pour ne pas avoir à la retaper au redémarrage automatique d’apache) :
    openssl genrsa -out www.fooB.com.key 2048
  • On génère le CSR
    openssl req -new -key www.fooB.com.key -out www.fooB.com.csr
  • On génère le certificat
    openssl x509 -req -days 365 -in www.fooB.com.csr -signkey www.fooB.com.key -out www.fooB.com.crt
  • On règle les droits au minimum sur ces fichiers
    chmod 600 *
  • éditer ainsi le VirtualHost du site fooB

<VirtualHost *:443>
    DocumentRoot /home/exampleB/www
    ServerName www.fooB.com
        SSLEngine on
        SSLCertificateFile /etc/ssl/fooB/www.fooB.com.crt
        SSLCertificateKeyFile /etc/ssl/fooB/www.fooB.com.key
        SSLVerifyClient None
        SSLOptions +StdEnvVars
</VirtualHost>

  • Relancer Apache

service apache2 restart