Comment renouveler un certificat SSL Let's Encrypt dans une pile Bitnami hébergée sur une instance Lightsail ?

Dernière mise à jour : 21-10-2021

Le certificat SSL Let's Encrypt installé pour mon site Web dans une instance Amazon Lightsail Bitnami est sur le point d'expirer. Comment puis-je le renouveler ?

Brève description

Les certificats SSL Let's Encrypt expirent 90 jours après leur création. Si vous avez installé un certificat Let's Encrypt standard en suivant les étapes fournies dans Comment installer un certificat Let's Encrypt standard dans une pile Bitnami hébergée sur Amazon Lightsail ?, le certificat SSL est automatiquement renouvelé. Toutefois, le renouvellement automatique peut échouer s'il n'est pas configuré correctement.

Si vous avez installé un certificat Let's Encrypt générique en suivant la méthode 2 de la section Comment installer un certificat SSL Let's Encrypt générique dans une pile Bitnami hébergée sur Amazon Lightsail ?, vous devez ensuite renouveler le certificat manuellement. La méthode 2 ne prend pas en charge le renouvellement automatique.

La résolution suivante couvre le renouvellement manuel du certificat sur les instances Lightsail hébergées par Bitnami, telles que WordPress, LAMP, Magento, MEAN, etc. La résolution suivante n'explique pas pourquoi le renouvellement automatique a échoué.

Résolution

Avant de commencer

Identifiez lequel des outils suivants vous avez utilisé pour installer le certificat :

  • Client « bncert-tool » ou « Lego » fourni par Bitnami
  • Forfait « Certbot »

Pour identifier l'outil que vous avez utilisé pour installer le certificat SSL, procédez comme suit :

1.    Exécutez la commande suivante pour rechercher le fichier de certificat dans les répertoires /etc/letsencrypt et /opt/bitnami/letsencrypt. Assurez-vous de remplacer DOMAIN par votre nom de domaine.

sudo grep -irl "$(openssl s_client -verify_quiet -showcerts -connect DOMAIN:443 2>/dev/null | sed -n '/BEGIN/,/END/{p;/END/q}' | head -n 3 | tail -n 2)" /opt/bitnami/letsencrypt /etc/letsencrypt

2.    Si le fichier de certificat se trouve dans les sous-répertoires de /opt/bitnami/letsencrypt, le certificat a probablement été installé à l'aide du client bncert-tool ou Lego. Pour le vérifier, exécutez la commande suivante :

sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list

Si la sortie de la commande de l'étape 1 correspond au chemin d'accès au certificat fourni par la commande précédente, votre certificat a été installé à l'aide de bncert-tool ou de Lego.

Si le fichier de certificat se trouve dans les sous-répertoires de /etc/letsencrypt, le certificat a probablement été installé à l'aide de Certbot. Pour le vérifier, exécutez la commande suivante :

sudo certbot certificates

Si la sortie de la commande de l'étape 1 correspond au chemin d'accès au certificat fourni par la commande précédente (le cas échéant), votre certificat a été installé à l'aide de Certbot.

Renouveler un certificat Let's Encrypt installé à l'aide de l'outil bncert-tool ou Lego

Exécutez les commandes suivantes :

sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/ctlscript.sh start

Dans les commandes précédentes, remplacez EMAIL-ADDRESS et DOMAIN par les valeurs correctes.

Vous pouvez utiliser n'importe laquelle de vos adresses e-mail de travail. Vous pouvez également utiliser la même adresse e-mail que celle que vous avez utilisée lors de l'installation du certificat. Vous pouvez récupérer l'e-mail que vous avez utilisé lors de l'installation du certificat en exécutant la commande suivante :

sudo ls /opt/bitnami/letsencrypt/accounts/acm*

Vous pouvez confirmer le nom de domaine en exécutant la commande suivante :

sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list

Renouveler un certificat Let's Encrypt installé à l'aide de l'outil Certbot

Déterminez la méthode d'authentification utilisée pour installer le certificat. Pour ce faire, exécutez la commande suivante : Remplacez DOMAIN par le nom de domaine principal de votre certificat. Pour déterminer le nom de domaine, exécutez la commande sudo certbot certificates.

sudo cat /etc/letsencrypt/renewal/DOMAIN.conf

Dans la sortie de la commande, affichez la valeur du paramètre authenticator.

Si la valeur du paramètre authenticator est standalone, webroot, apache, nginx, dns-route53, etc., finalisez le renouvellement en exécutant les commandes suivantes :

sudo /opt/bitnami/ctlscript.sh stop
sudo certbot renew
sudo /opt/bitnami/ctlscript.sh start

Les commandes précédentes renouvellent tous les certificats installés qui doivent être renouvelés.

Si la valeur du paramètre authenticator est manual et que la valeur du paramètre pref_challs est dns, il n'est pas possible de configurer le renouvellement automatique. Vous devez le renouveler manuellement en suivant les étapes suivantes. Notez que vous devez répéter cette étape chaque fois que vous renouvelez le certificat.

1.    Cette méthode nécessite l'ajout des registres TXT dans le fournisseur DNS du domaine. Ce processus peut prendre un certain temps, c'est donc une bonne pratique d'exécuter les commandes dans Linux GNU Screen pour empêcher la séance d'expirer. Pour démarrer une séance Screen, saisissez la commande suivante :

screen -S letsencrypt

2.    Exécutez la commande suivante et recherchez la valeur du paramètre Domains. Dans l'exemple suivant, remplacez DOMAIN par le nom de domaine principal de votre certificat.

sudo certbot certificates -d DOMAIN

3.    Exécutez la commande suivante pour renouveler le certificat. Assurez-vous d'inclure chaque domaine trouvé dans la commande précédente dans leur ordre d'apparition en utilisant l'option -d. Si vous incluez des domaines supplémentaires, si vous supprimez des domaines actuels ou si vous modifiez l'ordre des domaines, un nouveau certificat portant le nom DOMAIN-001 peut être créé au lieu de renouveler le certificat d'origine.

sudo certbot certonly --manual --preferred-challenge dns -d DOMAIN-1 -d DOMAIN-2 --force-renewal

4.    Vous recevez un message vous invitant à vérifier que vous êtes propriétaire du domaine spécifié en ajoutant des enregistrements TXT aux enregistrements DNS de votre domaine. Let's Encrypt fournit un ou plusieurs enregistrements TXT que vous devez utiliser pour la vérification.

5.    Lorsque vous voyez un enregistrement TXT à l'écran, commencez par ajouter l'enregistrement fourni dans le DNS de votre domaine. N'APPUYEZ PAS SUR ENTRÉE tant que vous n'avez pas confirmé que l'enregistrement TXT est propagé vers le DNS Internet. N'APPUYEZ PAS NON PLUS SUR CTRL+D car cela met fin à la session Screen en cours.

6.    Pour vérifier que l'enregistrement TXT est propagé vers le DNS Internet, recherchez-le à l'aide de la Recherche texte DNS. Saisissez le texte suivant dans la zone de texte et choisissez Recherche TXT pour exécuter la vérification. Veillez à remplacer example.com par votre nom de domaine.

_acme-challenge.example.com

7.    Si vos enregistrements TXT ont été propagés vers le DNS d'Internet, la valeur de l'enregistrement TXT s'affiche sur la page. Vous pouvez maintenant revenir à la session screen et appuyer sur ENTRÉE.

8.    Si vous avez été exclu du shell, vous pouvez revenir en utilisant la commande screen -r SESSIONID. Pour obtenir l'ID de session, exécutez la commande screen -ls.

9.    Si l'invite Certbot vous demande d'ajouter un autre enregistrement TXT, effectuez à nouveau les étapes 5 à 8.

10.    Une fois le certificat SSL généré, le message « Successfully received certificate » (Certificat reçu avec succès) s'affiche.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?