Ajoutez gratuitement un certificat SSL Wildcard à Azure Gateway avec LetsEncrypt
Dans cet article, nous allons configurer un certificat générique Let's Encrypt gratuit, attaché à une Azure Gateway v2.
Pour cet exemple, nous allons utiliser le meilleur nom de domaine : *.toto.com
Prérequis
Certbot ne fonctionne que sur le système Unix. Si vous utilisez une machine Windows, comme moi :), ce n'est pas un problème, vous pouvez utiliser wsl depuis Windows. Je vous expliquerai à la fin comment déplacer votre certificat de wsl vers votre système de fichiers Windows.
Une passerelle Azure V2
Un e-mail pour recevoir la communication et la notification de Let's Encrypt
Être propriétaire du nom de domaine et avoir accès à la configuration DNS lors de l'installation
1 — Installer Certbot
sudo apt update
sudo apt-get install letsencrypt
2 — Générer le certificat
sudo certbot certonly --manual
--preferred-challenges=dns --email contact@toto.com
--server https://acme-v02.api.letsencrypt.org/directory
--agree-tos -d toto.com -d *.toto.com
Détails des options de commande :
certonly : Obtenez ou renouvelez un certificat, mais ne l'installez pas
--manual : Obtenez des certificats de manière interactive ou à l'aide de hooks de script shell
--preferred-challenges=dns : privilégier la validation DNS
--email : E-mail utilisé pour l'inscription et le contact de récupération
--server : ACME Directory Resource URI. (default: https://acme-v02.api.letsencrypt.org/directory))
--agree-tos : Accepter le contrat d'abonnement du serveur ACME
-d : Noms de domaine à inclure. Pour plusieurs domaines, vous pouvez : utiliser plusieurs paramètres : -d flags ou utiliser une liste avec les valeurs sépéarées par une virgule
📄 La documentation complète se trouve ici.
Le script vous demande de partager votre adresse e-mail avec Electronic Frontier Foundation, dites Oui.
Le script vous demande ensuite si vous êtes d'accord avec la journalisation de votre adresse IP, dites Oui.
3- Déployer l'enregistrement DNS TXT
Maintenant, le script vous demande de déployer un enregistrement DNS.
Accédez au portail de votre fournisseur de nom de domaine et créez un nouvel enregistrement :
Dns Name : du type _acme-challenge.toto.com
Record Type : TXT
Txt Data (or content) : la clé donnée par le script
Selon votre fournisseur, la mise à jour des modifications peut prendre du temps. C'est l'heure du café ☕ ! Pour moi, avec OVH, les changements ont été immédiats.
Vous pouvez utiliser DigDns pour vérifier si votre clé a été enregistrée https://toolbox.googleapps.com/apps/dig/#TXT/
4 — Félicitations
Une fois que c'est fait, vous recevrez un message vous indiquant que le certificat a été enregistré au chemin : /etc/letsencrypt/live/toto.com/
Vous pouvez vérifier les détails de votre certificat avec la commande suivante :
sudo certbot certificates
Les certificats Let's Encrypt ne sont valables que trois mois.
Certbot vous propose une commande intéressante pour renouveler votre certificat :
sudo certbot renew
Si vous avez plusieurs domaines enregistrés sur votre machine, vous pouvez préciser le nom de domaine à renouveler : certbot certonly --force-renew -d toto.com
ℹ️ Vous êtes libre de développer un script de renouvellement automatique qui s'exécute tous les 3 mois
5 — Ajouter le certificat dans Azure
Votre certificat est maintenant généré sur votre machine, il est temps de télécharger votre certificat sur votre Azure Gateway !
Convertissez votre certificat en fichier pfx
Installer OpenSsl :
sudo apt-get update
sudo apt-get install openssl
Exporter le certificat :
sudo openssl pkcs12 -export -out live/toto.com/cert.pfx -inkey live/toto.com/privkey.pem -in live/toto.com/cert.pem
Si vous utilisez une machine Windows, vous ne pouvez pas accéder au dossier Let's encrypt depuis votre explorateur, ce dossier est protégé.
Mon conseil est de compresser le dossier, d'accorder les droits d'écriture à l'archive et vous pouvez maintenant déplacer l'archive vers un dossier Windows.
sudo tar -chvzf certificates.tar.gz /live
C'est tout ! Vous pouvez désormais télécharger votre certificat sur votre Key Vault ou directement sur votre écouteur Azure Gateway.