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

Lecture de 10 minute(s)
0

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. Au nombre de ces plans d'instance, on peut citer 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 installer un certificat SSL Let's Encrypt standard dans une instance Lightsail sans pile Bitnami, consultez Comment installer un certificat SSL Let's Encrypt standard dans une instance Lightsail ? Cela inclut des instances telles qu'Amazon Linux 2 et Ubuntu.

Pour installer un certificat Let's Encrypt SSL dans une instance Lightsail avec une pile Bitnami, reportez-vous à Comment puis-je installer un certificat Let's Encrypt SSL générique dans une pile Bitnami hébergée sur Amazon Lightsail ? Cela inclut des instances telles que WordPress, LAMP et Magento.

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

Pour installer un certificat Let's Encrypt générique dans une instance Lightsail qui n'utilise pas de pile Bitnami, reportez-vous à Comment puis-je installer un certificat SSL Let's Encrypt générique dans Amazon Lightsail ? Cela inclut des instances telles qu'Amazon Linux 2 et Ubuntu.

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.

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/, installez 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.
Important: N'appuyez pas sur ENTRÉE avant d'avoir confirmé que le registre TXT est propagé au DNS d’Internet. De même, n'appuyez pas sur CTRL+D car cela mettrait fin à la session d'écran.

5.    Pour vérifier que l'enregistrement TXT a été propagé vers le DNS Internet, recherchez-le sur DNS Text Lookup sur MxToolbox. 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 vos enregistrements TXT ont été propagés vers le DNS d'Internet, la valeur de l'enregistrement TXT s'affiche sur la page. Puis, revenez à l'écran et appuyez 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 de Certbot vous demande d'ajouter un autre registre 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 :


AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an