Certificat SSL

Il ne nous manque plus que le https. Pour cela, on va utiliser Let's Encrypt, qui est un service gratuit qui permet de générer des certificats SSL.

Installation de certbot

On va utiliser certbot, qui est un client Let's Encrypt. Il permet de générer des certificats SSL et de les renouveler automatiquement. Il sait aussi configurer nginx pour utiliser automatiquement le certificat.

apt install certbot python3-certbot-nginx

Génération du certificat

On va générer un certificat pour le nom de domaine www.monsite.fr. Il faut que le nom de domaine pointe vers l'adresse IP publique de la machine. Si ce n'est pas le cas, le certificat ne pourra pas être généré.

certbot --nginx -d www.monsite.fr

Il vous est demandé d'entrer un email de contact, d'accepter les conditions d'utilisation, de partager ou non votre adresse avec l'EFF et ses partenaire. Et c'est tout ! Le certificat est généré et installé automatiquement, nginx est configuré et redémarré, vous pouvez accéder à votre site en https.

Certbot

Hello en https

Renouvellement du certificat

Le certificat est valable 3 mois. Il faut le renouveler tous les 3 mois. Pour cela, il suffit de lancer la commande suivante :

certbot renew

Cette commande va vérifier si le certificat est toujours valide et le renouveler si besoin. Il est possible de l'automatiser en ajoutant une tâche cron qui va lancer cette commande tous les jours. Pour cela, il faut éditer le fichier /etc/crontab et ajouter la ligne suivante :

0 0 * * * root certbot renew --quiet

Cette ligne va lancer la commande certbot renew tous les jours à minuit. Le --quiet permet de ne pas afficher de message si tout se passe bien. Si le certificat est renouvelé, nginx sera redémarré automatiquement.