Certificats letsencrypt sans peine
Qu'est-ce qu'un certiticat SSL
Un certificat SSL atteste que le nom de domaine répond sur la bonne machine IP. L'autorité de certification appelle de l'extérieur le nom de domaine et délivre un certificat pour l'IP de la machine. La présence d'un tel certificat permet le protocole https et affiche un petit cadenas devant l'url dans les navigateurs.
Qu'est-ce que letsencrypt ?
Letsencrypt: ce sont de vrai certificats (pas de l'auto-signé). Gratuit. Il faut les renouveler tous les 90 jours (une ligne à écrire). Un rappel est envoyé pour le renouvelement par mail
Installation de letsencrypt avec les scripts d'automatisation
il faut installer 1 letsenscript avec git dans un répertoire /opt (ou ailleurs, adaptez à votre situation)
git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt --depth=1
Création du certificat
sudo /opt/letsencrypt/letsencrypt-auto certonly --non-interactive --apache -m <ton adresse mail> --agree-tos --renew-by-default -d <ton nom de domaine>
Le script s'occupe du challenge tout seul et vous dit ce qu'il a fait.
Les certificats sont installés dans le répertoire /etc/letsencrypt/live/mondomaine.fr pour le domaine mondomaine.fr
Pour utiliser le certificat
Il faut activer le module ssl pour apache2
sudo a2enmod ssl
et configurer le nom de domaine pour le port 443 (https)
Créer un fichier /etc/apache2/sites-available/mondomaine-ssl.conf
<IfModule mod_ssl.c> <VirtualHost *:443> ServerName mondomaine.fr DocumentRoot /var/www/html/mondomaine (enfin l'endroit où se trouvent les fichiers à servir) # SSL configuration SSLEngine on SSLProxyEngine On # If you hold wildcard certificates for your domain the next two lines are not necessary. SSLCertificateFile "/etc/letsencrypt/live/mondomaine.fr/cert.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/mondomaine.fr/privkey.pem" SSLCertificateChainFile "/etc/letsencrypt/live/mondomaine.fr/chain.pem" <Directory "/var/www/html/mondomaine/"> Options Indexes FollowSymLinks AllowOverride All </Directory> </VirtualHost> </IfModule>
Activer cette configuration
sudo a2ensite mondomaine-ssl
il reste à faire une redirection pour les requêtes qui arriveraient en http
Créer un fichier /etc/apache2/sites-available/mondomaine-80.conf
<VirtualHost *:80> ServerName mondomaine.fr Redirect permanent / https://mondomaine.fr/ </VirtualHost>
Activer la redirection
Penser à désactiver l'ancienne configuration
sudo a2dissite <ancien fichier de conf>
Activer la redirection
sudo a2ensite mondomaine-80
Relancer apache2
sudo service apache2 restart
Pour renouveler un certificat
sudo /opt/letsencrypt/letsencrypt-auto certonly --non-interactive --apache -d <ton nom de domaine>
Notes de bas de page:
Je me suis servi de cette documentation: https://www.isicca.com/fr/lets-encrypt-guide-ultime/