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.