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.


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.