- Modifié
Bonjour
Dans ce tutoriel, je vous propose de découvrir comment mettre en place un certificat TLS/SSL en utilisant Let's Encrypt sur un serveur apache.
Nous allons donc commencer par installer git sur notre serveur.
Let's Encrypt dispose d'un mode automatique qui va installer les dépendances nécessaires à l'outil et mettre en place les certificats en fonction de votre configuration serveur. Cette installation automatique fonctionne dans le cadre d'un serveur Web apache. Si vous utilisez nginx par exemple, il faudra passer par une installation manuelle (le support de nginx est pour l'instant expérimental)
Les certificats proposés par Let's Encrypt sont valables pour une durée de 90 jours. Il faudra donc penser à les renouveler avant la fin de cette période. Pour cela on peut utiliser la commande :
Ce script peut être mis en tâches récurrentes une fois par semaine, il vérifiera que le certificat en question est toujours valable, et si ce n'est pas le cas il demandera alors le renouvellement. L'avantage est que si votre commande échoue une fois, elle sera lancée la semaine suivante et votre certificat ne risque pas d'arriver à expiration.
Source Let's Encrypt sur un serveur apache
Dans ce tutoriel, je vous propose de découvrir comment mettre en place un certificat TLS/SSL en utilisant Let's Encrypt sur un serveur apache.
Nous allons donc commencer par installer git sur notre serveur.
apt-get update
apt-get install git
Maintenant que nous disposons de git, nous allons pouvoir cloner le client Let's Encrypt depuis le dépôt Github officiel. Nous allons placer ce client dans le dossier /tmp de notre serveur.cd /usr/local/sbin
wget https://dl.eff.org/certbot-auto
Mise en place du certificatLet's Encrypt dispose d'un mode automatique qui va installer les dépendances nécessaires à l'outil et mettre en place les certificats en fonction de votre configuration serveur. Cette installation automatique fonctionne dans le cadre d'un serveur Web apache. Si vous utilisez nginx par exemple, il faudra passer par une installation manuelle (le support de nginx est pour l'instant expérimental)
chmod a+x /usr/local/sbin/certbot-auto
Cette commande va s'occuper de tout pour vous, elle va commencer par installer les dépendances du client, elle va ensuite détecter les noms de domaine configurés sur votre serveur apache, demander les certificats pour ces derniers et enfin modifier la configuration de vos différents VirtualHosts afin de prendre en compte les nouveaux certificats installés. Il est cependant possible de préciser à Let's Encrypt les domaines manuellementcertbot-auto --apache -d example.com
- Multiple domaine ou sous domainecertbot-auto --apache -d example.com -d www.example.com
Les certificats générés, ainsi que les clés privées sont stockés dans le dossier /etc/letsencrypt/live/. Let's Encrypt modifie vos virtual hosts apache en indiquant le chemin vers votre clé privée et votre certificat. Il inclue aussi un fichier options-ssl-apache.conf qui permet de configurer le SSL pour apache (quel algorithme de chiffrage utiliser, quel type de clé supportée…). Si la configuration proposée par défaut ne vous convient pas, vous pouviez évidemment modifier le virtual host pour y mettre la configuration que vous souhaitez.<IfModule mod_ssl.c>
<VirtualHost *:443>
...
SSLCertificateFile /etc/letsencrypt/live/domaine.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domaine.fr/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
...
</VirtualHost>
</IfModule>
Le renouvellementLes certificats proposés par Let's Encrypt sont valables pour une durée de 90 jours. Il faudra donc penser à les renouveler avant la fin de cette période. Pour cela on peut utiliser la commande :
certbot-auto renew
Cette commande renouvelle les certificats sans interaction de la part de l'utilisateur, vous pouvez donc la rajouter dans les tâches récurrentes de votre système afin de renouveler le certificat au bout d'une certaine période de temps (60 jours par exemple). Le problème avec cette tâche récurrente, c'est que si elle échoue pour une raison ou une autre alors notre certificat ne sera pas renouvelé à temps. Heureusement pour nous quelqu'un a déjà pensé à cette problématique et a créé un script permettant de renouveler un certificat si celui-ci est sur le point d'expirer.Ce script peut être mis en tâches récurrentes une fois par semaine, il vérifiera que le certificat en question est toujours valable, et si ce n'est pas le cas il demandera alors le renouvellement. L'avantage est que si votre commande échoue une fois, elle sera lancée la semaine suivante et votre certificat ne risque pas d'arriver à expiration.
crontab -e
30 2 * * 1 /usr/local/sbin/certbot-auto renew >> /var/log/le-renew.log
Source Let's Encrypt sur un serveur apache