Comment installer un certificat SSL Let's Encrypt générique dans une pile Bitnami hébergée dans Amazon Lightsail ?

Date de la dernière mise à jour : 20/10/2021

Comment installer un certificat SSL générique pour un site Web dans une instance Amazon Lightsail avec une pile Bitnami ?

Brève description

La résolution suivante couvre l'installation d'un certificat SSL Let's Encrypt générique pour les sites Web hébergés dans une instance Lightsail avec une pile Bitnami. Des exemples de ces plans d'instance incluent WordPress, LAMP, Magento, MEAN, etc. Si vous disposez d'un plan d'instance différent ou si vous souhaitez installer un certificat standard, consultez l'un des éléments suivants :

Certificats Let's Encrypt standard

Pour plus d'informations sur l'installation d'un certificat Let's Encrypt standard dans une instance Lightsail qui n'utilise pas de pile Bitnami, telle qu'Amazon Linux 2, Ubuntu, etc., consultez Comment installer un certificat SSL Let's Encrypt standard dans une instance Lightsail ? 

Pour plus d'informations sur l'installation d'un certificat SSL Let's Encrypt standard (pas un certificat générique) dans une instance Lightsail avec une pile Bitnami, telle que WordPress, LAMP, Magento, etc., consultez Comment installer un certificat SSL Let's Encrypt standard dans une pile Bitnami hébergée dans Amazon Lightsail ?

Certificats Let's Encrypt génériques (par exemple, *.example.com)

Pour plus d'informations sur l'installation d'un certificat Let's Encrypt générique dans une instance Lightsail qui n'utilise pas de pile Bitnami, telle qu'Amazon Linux 2, Ubuntu, etc., consultez Comment installer un certificat SSL Let's Encrypt générique dans Amazon Lightsail ?

Résolution

Les étapes à suivre pour installer un certificat SSL Let's Encrypt générique dans une instance Lightsail hébergée par Bitnami dépendent du fournisseur DNS utilisé par le domaine. Pour déterminer la méthode à utiliser, vérifiez si le fournisseur DNS est répertorié dans Fournisseurs DNS de la documentation Lego. Puis, sélectionnez la méthode appropriée à utiliser :

Méthode 1 : utilisez l'outil Lego fourni par Bitnami si le domaine utilise l'un des fournisseurs DNS répertoriés.

Méthode 2 : utilisez le package Certbot si le domaine n'utilise aucun des fournisseurs DNS répertoriés.

Remarque : Les chemins d'accès mentionnés dans cet article peuvent varier selon que la pile Bitnami utilise des packages système Linux natifs (approche A) ou s'il s'agit d'une installation autonome (approche B). Pour identifier le type d'installation Bitnami, exécutez la commande ci-après :

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

Méthode 1

Avec bncert-tool, la pile Bitnami fournit l'outil Lego. Cet outil prend en charge la création de certificats SSL génériques, ce qui n'est pas le cas de bncert-tool.

Conditions préalables et limites

  • Les étapes suivantes couvrent l'installation du certificat sur le serveur. Vous devez effectuer manuellement des étapes supplémentaires, telles que la configuration du serveur Web pour l’utilisation du certificat et la configuration de la redirection HTTPS.
  • Le domaine doit utiliser l'un des fournisseurs DNS répertoriés dans la liste Fournisseurs DNS de la documentation Lego.

Remarque : Dans l'exemple suivant, le fournisseur DNS est Amazon Route 53 ou Amazon Lightsail. Pour obtenir des instructions sur les autres fournisseurs DNS pris en charge, consultez Fournisseurs DNS dans la documentation Lego.

1.    Créez un utilisateur AWS Identity and Access Management (IAM) avec un accès programmatique. Pour connaître les autorisations minimales requises pour être attachées à l'utilisateur IAM pour que Lego puisse terminer le défi DNS, consultez Stratégie dans la documentation Lego.

2.    Exécutez les commandes suivantes dans l'instance pour ouvrir le fichier/root/.aws/credentials dans l'éditeur nano.

sudo mkdir /root/.aws
sudo nano /root/.aws/credentials

3.    Copiez les lignes suivantes dans le fichier. Enregistrez ensuite le fichier en appuyant sur ctrl+x, puis sur Y et finalement surENTRÉE.

Dans la commande suivante, remplacez aws_access_key_id par l'ID de clé d'accès créé à l'étape 1. Remplacez une clé aws_secret_access_key par la clé d'accès secrète créée à l'étape 1.

[default]
aws_access_key_id = AKIA************E
aws_secret_access_key = 1yop**************************l

4.    Si l’instance Bitnami n'inclut pas le répertoire /opt/bitnami/letsencrypt/, vous pouvez installer manuellement le client Lego à l'aide des commandes suivantes :

cd /tmp
curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i - -O lego.tar.gz
tar xf lego.tar.gz
sudo mkdir -p /opt/bitnami/letsencrypt
sudo mv lego /opt/bitnami/letsencrypt/lego

5.    Créez un certificat Let's Encrypt dans le serveur. Remplacez EMAIL-ADDRESS par l'adresse électronique à laquelle vous souhaitez recevoir des mises à jour supplémentaires concernant le certificat. Remplacez DOMAIN par votre nom de domaine.

Serveurs de noms Route 53

sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns route53 --path="/opt/bitnami/letsencrypt" run

Serveurs de noms Lightsail

sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains"*.DOMAIN" --dns lightsail --path="/opt/bitnami/letsencrypt" run

Une fois le certificat SSL généré avec succès, vous recevez le message « Server responded with a certificate » (Le serveur a répondu avec un certificat). Le certificat SSL et la clé privée sont générés aux emplacements suivants :

/opt/bitnami/letsencrypt/certificates/DOMAIN.crt

/opt/bitnami/letsencrypt/certificates/DOMAIN.key

6.    Liez le certificat SSL et le fichier de clé de certificat aux emplacements actuellement lus par le serveur Web :

Apache sous l'approche A

Dans les exemples de commandes suivants, remplacez l'espace réservé DOMAIN par votre nom de domaine.

sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/bitnami/certs/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

Apache sous l’approche B

Dans les exemples de commandes suivants, remplacez l'espace réservé DOMAIN par votre nom de domaine.

sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
sudo mv /opt/bitnami/apache2/conf/server.csr /opt/bitnami/apache2/conf/server.csr.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

NGINX sous l'approche A

Dans les exemples de commandes suivants, remplacez l'espace réservé DOMAIN par votre nom de domaine.

sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/bitnami/certs/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

NGINX sous l'approche B

Dans les exemples de commandes suivants, remplacez l'espace réservé DOMAIN par votre nom de domaine.

sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
sudo mv /opt/bitnami/nginx/conf/server.csr /opt/bitnami/nginx/conf/server.csr.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

7.    Configurez le renouvellement automatique des certificats.

Les certificats Let's Encrypt sont valides pendant 90 jours. Pour automatiser le renouvellement du certificat afin que le certificat soit automatiquement renouvelé avant son expiration, procédez comme suit :

Exécutez la commande suivante pour ouvrir l'éditeur crontab :

sudo crontab -e -u bitnami

Ajoutez les lignes suivantes au fichier crontab, puis enregistrez le fichier. Remplacez EMAIL-ADDRESS par votre adresse électronique, DOMAIN par votre nom de domaine et DNS par le nom de votre fournisseur de serveur de noms (Route 53, Lightsail, etc.).

0 0 * * * sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt --email="EMAIL-ADDRESS" --domains="DOMAIN"  --domains="*.DOMAIN" --dns DNS renew >> /var/log/letsencrypt.log 2>&1 && sudo /opt/bitnami/apache/bin/httpd -f /opt/bitnami/apache/conf/httpd.conf -k graceful

8.    Configurez la redirection HTTPS. Pour plus d'informations, consultez les informations suivantes sur le site Web de Bitnami :

Méthode 2

Conditions préalables et limites

  • Les étapes suivantes couvrent l'installation du certificat dans le serveur. Vous devez toujours effectuer manuellement des étapes supplémentaires, telles que la configuration du serveur Web pour utiliser le certificat et la configuration de la redirection HTTPS.
  • Le renouvellement automatique des certificats n'est pas pris en charge par cette méthode.

Remarque : Avant de commencer les étapes suivantes, installez Certbot. Pour obtenir des instructions d'installation, consultez Comment installer le package Certbot dans une instance Lightsail pour l'installation du certificat Let's Encrypt ?

Pour les instances hébergées sur Bitnami, la distribution Linux est Debian ou Ubuntu. Exécutez la commande suivante pour confirmer la distribution Linux dont vous disposez :

cat /etc/os-release | grep -i ^id

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.    Saisissez la commande suivante pour démarrer Certbot en mode interactif. Cette commande indique à Certbot d'utiliser une méthode d'autorisation manuelle avec des défis DNS pour vérifier la propriété du domaine. Remplacez example.com par votre nom de domaine.

sudo certbot certonly --manual --preferred-challenges dns -d example.com -d *.example.com

3.    Vous recevez une invite pour vérifier que vous possédez le domaine spécifié en ajoutant des registres TXT aux registres DNS du domaine. Let's Encrypt fournit un ou plusieurs registres TXT que vous devez utiliser pour la vérification.

4.    Lorsque vous voyez un enregistrement TXT à l'écran, ajoutez d'abord le registre fourni dans le DNS de votre domaine. N'APPUYEZ PAS sur ENTRÉE avant d'avoir confirmé que le registre TXT est propagé au DNS d’Internet. N'APPUYEZ PAS non plus sur CTRL+D car cela mettrait fin à la séance d'écran en cours.

5.    Pour confirmer que le registre TXT a été propagé au DNS d’Internet, recherchez-le dans Recherche TXT DNS. Saisissez le texte suivant dans la zone de texte et choisissez TXT Lookup (Recherche TXT) pour exécuter la vérification. Veillez à remplacer example.com par votre nom de domaine.

_acme-challenge.example.com

6.    Si les registres TXT se sont propagés au DNS d'Internet, vous voyez la valeur du registre TXT dans la page. Vous pouvez maintenant revenir à l'écran et appuyer sur ENTRÉE.

7.    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.

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

9.    Une fois le certificat SSL généré avec succès, vous recevez le message « Successfully received certificate » (Certificat reçu avec succès). Les emplacements des certificats et des fichiers de clé sont également fournis. Enregistrez ces emplacements de fichiers dans un bloc-notes pour les utiliser à l'étape suivante.

10.    Seule la configuration de l'installation et du renouvellement du certificat est terminée. Vous devez toujours configurer le serveur Web pour utiliser ce certificat et configurer la redirection HTTPS. Utilisez l'un des ensembles de commandes suivants pour configurer le serveur Web afin qu'il utilise le certificat.

Apache sous l'approche A

Dans les exemples de commandes suivants, remplacez l'espace réservé DOMAIN par votre nom de domaine.

sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/apache2/conf/bitnami/certs/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

Apache sous l’approche B

Dans les exemples de commandes suivants, remplacez l'espace réservé DOMAIN par votre nom de domaine.

sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/apache2/conf/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

NGINX sous l'approche A

Dans les exemples de commandes suivants, remplacez l'espace réservé DOMAIN par votre nom de domaine.

sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/bitnami/certs/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

NGINX sous l'approche B

Dans les exemples de commandes suivants, remplacez l'espace réservé DOMAIN par votre nom de domaine.

sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

8.    Configurez la redirection HTTPS. Pour plus d'informations, consultez les informations suivantes sur le site Web de Bitnami :


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


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