HTTPS
/ IPv6
sur un serveur web openResty
sur Raspbian
Cette fiche opérationnelle décrit la mise en place d'un certificat SSL/TLS de Let's Encrypt pour un serveur web Resty
en mode https
et en IPv6 seulement sur une carte Raspberry Pi sous Raspian (Debian Stretch). Toutefois, un recours initial et temporaire à IPv4 sera nécessaire.
openResty
est une édition spéciale du serveur NGINX
auquel est intégré un interpréteur Lua et/ou son compilateur « juste à temps » LuaJIT
Nous utilisons le domaine geek.scalaire.com
.
certbot
n'est pas encore capable de bien gérer les sites exclusivement en IPv6. Il faudra recourir temporairement à un accès IPv4 avec le port standard 80/http
, celui du trafic non chiffré. Dans un réseau privé, il faudra en sus router par NAT
l'adresse IPv4:80
publique vers ce serveur. Normalement ce port est libre tant sur le serveur que sur le routeur (ou box internet) car nous utilisons exclusivement le seul port https/443
chiffré.
AAAA
fournissant l'IPv6, une entrée à priori temporaire de type A
sera rajoutée vers l'adresse IPv4 publique
geek A 197.231.221.211 ; temporaire certbot -- à supprimer après installation & renouvellement geek AAAA 2a01:e0a:182:e030:2184:407d:2215:443Après rechargement de la zone dans le DNS attendre qu'elle soit propagée ...
192.168.x.y
,10.a.b.c.d
ou 172.16--31.x.y
il faudra configurer la NAT
de la box internet ou du routeur pour envoyer les connexions entrantes depuis l'internet sur le port 80
de son IPv4 publique vers cette IPv4 interne privée.
443
.
https
apt-get install certbot certbot certonly --standalone -d geek.scalaire.frAprès avoir reçu les congratulations du robot, il faut rajouter le certificat indiqué, ici
/etc/letsencrypt/live/geek.scalaire.fr/fullchain.pem
, à la configuration du serveur web dans un bloc du style
http { .... SSL* ... .... server { listen geek.scalaire.fr:443 ssl http2 reuseport; server_name geek.scalaire.fr; ssl_certificate /etc/letsencrypt/live/geek.scalaire.fr/fullchain.pem ; ssl_certificate_key /etc/letsencrypt/live/geek.scalaire.fr/privkey.pem ;(consulter la fiche opérationnelle openResty pour la configuration de la section
http
)
A
du DNS, on recharge la zone... et on attend la propagation pour éviter que l'IPv4 ne soit utilisée à la place ou en sus de l'IPv6 seule. Ou bien on câble en dur cette IPv6 listen [2a01:e0a:182:e030:2184:407d:2215:443]:443 ssl http2 reuseport ;
systemctl restart openresty # ou plus doux : reload journalctl -exu openresty tail /var/log/openresty/error.log # ou PATH adéquat
Lorsque l'installation est stabilisée, on installe ou modifie la procédure de création automatique de l'IPv6 sous systemd
Il faudra malheureusement recommencer le cirque IPv4:80
avant les 3 mois de durée de vie du certificat qui sera renouvelé par :
certbot certonly --force-renewal --cert-name geek.scalaire.fr -d geek.scalaire.fr