Avant tout, sachez que si le certificat SSL a été acheté chez nous, nous pouvons gratuitement prendre en charge l'installation du certificat SSL sur Apache 2.
L'installation s'effectue avec vous via par téléphone ainsi qu'avec une prise de contrôle à distance de votre PC afin que vous puissiez apprendre à activer le SSL sur Apache 2.
Ce tutoriel permet d'installer un certificat SSL sur Apache 2 (mod_ssl) sur un serveur Debian ou Ubuntu (Linux). Sur d'autres distributions, certaines commandes peuvent varier.
Vous devez préalablement activer le module SSL Apache et éventuellement le module Headers (optionnel : Il permet d'activer le HSTS) :
# Activer le module SSL Apache a2enmod ssl # Activer le module Headers a2enmod headers # Redémarrer le service pour prendre en compte l'activation des modules service apache2 restart
Nous vous conseillons de créer un répertoire dans "/etc/ssl" et d'y placer l'ensemble des certificats ".cer" ainsi que votre clée privée ".key".
Commençons par vérifier si Apache écoute le port 443 (port utilisé par le protocole https). Exécutez la commande ci-dessous, qui doit vous retourner un résultat :
netstat -tanpu | grep "LISTEN" | grep "443"
En l'absence de résultat, le serveur Web n'écoute pas le port 443. La directive "Listen 443" ne doit pas être présente dans la configuration. Vérifions :
grep -R "Listen" /etc/apache2
Si aucun résultat n'est retourné par cette commande, vous devez éditer la configuration d'Apache (/etc/apache2/ports.conf) afin d'ajouter :
<IfModule mod_ssl.c> Listen 443 </IfModule>
Il ne vous reste plus qu'à redémarrer Apache pour que cette configuration soit prise en compte. Vérifiez à nouveau si le port 443 est écouté :
# Redémarrez Apache : service apache2 restart # Vérifiez qu'Apache écoute bien le port 443 (https) : netstat -tanpu | grep "LISTEN" | grep "443"
Pour obtenir une configuration identique en HTTP ainsi qu'en HTTPS, nous vous conseillons de dupliquer la configuration déjà utilisée sur le protocole HTTP.
Si votre serveur héberge plusieurs sites web, il doit utiliser la directive ServerName. Vous allez donc pouvoir trouver le VirtualHost à dupliquer via la commande ci-dessous :
# Commencez par vous déplacer dans le répertoire "sites-available" cd /etc/apache2/sites-available # Recherchez la configuration d'Apache (généralement présente dans "sites-available") grep -R "site-a-securiser.fr" /etc/apache2
Si vous n'obtenez aucun résultat, la directive ServerName ne doit pas être utilisée. Vérifiez si un fichier de configuration est présent dans le répertoire "sites-available".
Si vous n'arrivez pas à trouver le VirtualHost, la configuration chargée par Apache est surement présente dans "/etc/apache2/apache2.conf".
Une fois le VirtualHost trouvé, dupliquez le pour conserver une base de configuration identique sur les deux protocoles (HTTP et HTTPS) ou éditez le "/etc/apache2/apache2.conf".
cp nom-du-vhost.conf nom-du-vhost-ssl.conf
Remplacez le port 80 par le port 443 dans la configuration du Virtual Host : <VirtualHost *:443> puis ajoutez la configuration ci-dessous :
# Activation du SSL SSLEngine On # Activation de tous les protocoles sécurisés (TLS v1.3 et TLS v1.2) tout en désactivant les protocoles obsolètes (TLS v1.0 et 1.1) et ceux non sécurisés (SSL v2, SSL v3) SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 # On active les méthodes de chiffrement, et on désactive les méthodes de chiffrement non sécurisés (par la présence d'un !) SSLCipherSuite HIGH:!aNULL:!MD5:!ADH:!RC4:!DH:!RSA # Le navigateur devra choisir une méthode de chiffrement en respectant l'ordre indiquée dans SSLCipherSuite SSLHonorCipherOrder on # Chemin vers le certificat SSL de votre nom de domaine SSLCertificateFile "/etc/ssl/www-nom-domaine-fr/www-nom-domaine-fr.cer" # Chemin vers la clée privée du certificat SSL de votre nom de domaine SSLCertificateKeyFile "/etc/ssl/www-nom-domaine-fr/www-nom-domaine-fr.key" # Chemin vers le certificat SSL racine, puis vers le certificat SSL intermédiaire. Attention : L'ordre est important. SSLCACertificateFile "/etc/ssl/www-nom-domaine-fr/certificat-racine.cer" SSLCACertificateFile "/etc/ssl/www-nom-domaine-fr/certificat-intermediaire.cer"
Si toutes les pages de votre site doivent être sécurisées, ajoutez la directive ci-dessous, qui va activer le HSTS (HTTP Strict Transport Security).
Header always set Strict-Transport-Security "max-age=15768000"
Important : L'activation du HSTS ne remplace pas les redirections de type 301 qui doivent être mises en place afin que les pages accessibles en "http" soient redirigées en "https".
Cette étape est très importante et permet aux robots d'indexation (Google Bot...) de comprendre que votre site est désormais sécurisé.
Cette redirection 301 est préconisée par Google et permet d'éviter une perte de position sur le classement SEO. Consultez notre tutoriel.
# Activer le VirtualHost présent dans "sites-available" a2ensite nom-du-vhost-ssl # Si toutefois vous devez désactiver ce VirtualHost, exécutez : a2dissite nom-du-vhost-ssl # Redémarrer Apache pour la prise en compte de ce nouveau VirutalHost service apache2 restart
Nous recommandons vivement de tester votre configuration SSL sur "Qualys SSL Labs" afin de s'assurer que la sécurité SSL est optimale.
Vous devriez obtenir la note "A+" (si le Strict-Transport-Security est activé, voir l'étape n°3) et la note A sans le HSTS. A défaut, vérifiez votre configuration ou contactez-nous.