Nginx

Dernière mise à jour : 11/01/2020

Nginx est un serveur web relativement léger qui est désormais assez répandu.

Passer en https

Un excellent article sur le sujet (en anglais) est disponible chez DigitalOcean. Un résumé se trouve ci-dessous.

Installer Certbot

Certbot est un utilitaire permettant d’avoir rapidement un certificat SSL reconnu par la plupart des navigateurs. Un petit tour sur le site officiel https://certbot.eff.org/ et c’est joué.

Sans détailler toutes les possibilités, un simple certbot certonly suffit la plupart du temps à créer les certificats. Pour cela, il faut qu’un serveur web correspondant au nom de domaine voulu soit installé et accessible pour l’utilitaire. Les éléments du certificat seront créés et il sera alors possible de les utiliser pour tous les services associés à ce domaine, même sur d’autres ports que les classiques 80 et 443 du web.

Basculer nginx en https

Sur certaines distributions, cela se fait presque tout seul. Si ça n’est pas le cas, voici les étapes pour les distributions debian-like.

Il faut commencer par modifier le fichier .conf correspondant votre site (/etc/nginx/sites-available/default pour le site par défaut). Cela doit ressembler à ceci :

# Default server configuration 
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name www.;
        return 301 https://$request_uri;
}
server {
        # SSL configuration
        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;
        server_name www.;
        ssl_certificate         /etc/letsencrypt/live//fullchain.pem;
        ssl_certificate_key     /etc/letsencrypt/live//privkey.pem;
...

Pensez bien à séparer les deux serveurs, sous peine d’avoir des redirections infinies sur le site en https !

Renouvellement

Comme les certificats Let’s Encrypt n’ont qu’une durée de vie assez courte (3 mois), il faut les renouveler régulièrement. C’est extrêmement difficile et complexe, car il faut lancer la commande :

$ certbot renew

Cela ne renouvelle vos certificats que s’il y en a vraiment besoin. Donc vous pouvez même lancer la commande tous les jours, vos certificats ne seront renouvelés qu’à l’approche de l’échéance de ceux-ci. Un petit crontab et hop, le tour est joué.

Après, il reste à recopier vos éléments de certificats là où vous les utilisez, si par exemple vous vous en servez pour des services hors http/https.