Générer un certificat letsencrypt pour une VM
Il est possible d'utiliser un véritable certificat pour vos services hébergés dans une VM de la plateforme.
Pour commencer vous devez créer une zone DNS sur la plateforme. Il est ensuite indispensable de créer un enregistrement de type CAA pour que Let's Encrypt accepte de generer un certificat avec un challenge DNS.
On va maintenant créer un enregistrement (Record Set) CAA. Il vous suffit de cliquer sur le bouton Create Record Set puis de remplir le formulaire:
- Type: CAA
- Name: le nom de votre zone (avec le .) dans cet exemple "doc.os.univ-lyon1.fr."
- Records: "0 issue letsencrypt.org" pour autoriser l'émission par Let's Encrypt
Demander le certificat
Il est nécessaire d'installer letsencrypt dans la VM ou sur votre machine (il faudra déplacer le certificat et la clé sur la VM). Vous pouvez suivre la procédure d'installation suivante ou utiliser votre gestionnaire de paquets ou snap.
La seule solution pour demander un certificat est de réaliser un challenge DNS. Pour automatiser le déploiement, nous allons utiliser un script qui configura automatiquement le DNS de la plateforme Openstack. Il faut donc se préparer à utiliser la CLI Openstack. Quand vous avez installé letsencrypt et "sourcé" votre openrc, vous pouvez utiliser les commandes suivantes:
chmod a+x $(pwd)/letsencrypt-designate
Vous pouvez ajouter --test-cert à votre commande pour utiliser un serveur de test avec des limitations plus souples.
Attention:
Un certificat émis par le serveur staging ne sera pas reconnu par les navigateurs.
Running manual-auth-hook command: /home/demo/letsencrypt-designate
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/demoencrypt.doc.os.univ-lyon1.fr/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/demoencrypt.doc.os.univ-lyon1.fr/privkey.pem
Your cert will expire on 2022-12-22. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- Your certificate and chain have been saved at: chemin vers votre certificat Your key file has been saved at:: chemin vers votre clé (attention à ne pas la laisser trainer!)