Comment puis-je installer un certificat SSL générique Let’s Encrypt dans une pile Bitnami hébergée sur Lightsail ?

Lecture de 9 minute(s)
0

Je souhaite installer un certificat SSL générique pour mon site Web dans une instance Amazon Lightsail dotée d’une pile Bitnami.

Brève description

Pour plus d'informations sur l'installation d'un plan d'instance différent ou d'un certificat standard, consultez les articles suivants du centre de connaissances AWS :

Résolution

Les étapes à suivre pour installer un certificat SSL Let's Encrypt générique sur une instance Lightsail hébergée par Bitnami dépendent du fournisseur DNS utilisé par votre domaine. Vérifiez si votre fournisseur DNS figure dans la liste des fournisseurs DNS sur le site Web de Lego. Sélectionnez ensuite la méthode appropriée à utiliser :

  • Si votre domaine utilise l'un des fournisseurs DNS répertoriés, utilisez l'outil Lego fourni par Bitnami.
  • Si votre domaine n'utilise aucun des fournisseurs DNS répertoriés, utilisez le package Certbot.

Remarque : Les chemins de fichiers peuvent changer selon que votre pile Bitnami utilise des packages système Linux natifs (approche A) ou une installation autonome (approche B). Les derniers plans WordPress Bitnami ne sont disponibles que pour l’approche A.

Pour identifier votre type d'installation Bitnami, exécutez la commande suivante :

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

Outil Lego

Bitnami fournit l'outil bncert et l'outil Lego. L'outil Lego prend en charge la création de certificats SSL génériques. L'outil bncert ne prend pas en charge la création de certificats SSL génériques.

Remarque : Dans l'exemple suivant, les fournisseurs DNS sont Amazon Route 53 et Amazon Lightsail.

Pour utiliser l'outil Lego afin d'installer un certificat SSL Let's Encrypt générique, procédez comme suit :

  1. Créez un utilisateur AWS Identity and Access Management (IAM) avec un accès programmatique. Pour déterminer les autorisations utilisateur IAM requises pour que Lego puisse relever le défi DNS, consultez des exemples de politiques IAM sur le site Web de Lego.

  2. Pour ouvrir le fichier /root/.aws/credentials dans l'éditeur nano, exécutez la commande suivante :

    sudo mkdir /root/.aws
    sudo nano /root/.aws/credentials
  3. Entrez les lignes suivantes dans le fichier d'informations d'identification :

    [default]
    aws_access_key_id = AKIA************E
    aws_secret_access_key = 1yop**************************l
    region = us-east-1

    Remarque : Remplacez aws_access_key_id et aws_secret_access_key par vos valeurs. Remplacez us-east-1 par la région AWS de votre instance Lightsail.

  4. Pour enregistrer le fichier, appuyez sur Ctrl + X, puis sur Y et enfin sur Entrée.

  5. Si votre instance Bitnami n'inclut pas le répertoire /opt/bitnami/letsencrypt/, exécutez la commande suivante pour installer manuellement le client Lego :

    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 xzf lego.tar.gz
    sudo mkdir -p /opt/bitnami/letsencrypt
    sudo mv lego /opt/bitnami/letsencrypt/lego
  6. Pour créer un certificat Let's Encrypt générique sur le serveur, exécutez la commande suivante en fonction de votre type de serveur :
    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 DNS_ZONE=DOMAIN /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns lightsail --path="/opt/bitnami/letsencrypt" run

    Remarque : Remplacez EMAIL-ADDRESS par l'adresse e-mail à laquelle vous souhaitez recevoir les mises à jour des certificats. Remplacez DOMAIN par votre nom de domaine.
    Le certificat SSL et la clé privée sont générés aux emplacements suivants : /opt/bitnami/letsencrypt/certificates/DOMAIN.crt ou /opt/bitnami/letsencrypt/certificates/DOMAIN.key.

  7. Pour arrêter les services de pile Bitnami, exécutez la commande suivante :

    sudo /opt/bitnami/ctlscript.sh stop
  8. Liez le certificat SSL et le fichier de clé de certificat aux emplacements que votre serveur Web lit actuellement, en fonction de votre serveur et de votre approche :
    Apache, approche A

    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

    Apache, approche B

    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

    NGINX, approche A

    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

    NGINX, approche B

    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

    Remarque : Pour les commandes précédentes, remplacez DOMAIN par votre nom de domaine.

  9. Pour démarrer les services de pile Bitnami, exécutez la commande suivante :

    sudo /opt/bitnami/ctlscript.sh start
  10. Pour automatiser le renouvellement des certificats, exécutez la commande suivante pour ouvrir l'éditeur crontab :

sudo crontab -e -u bitnami

Remarque : Les certificats Let's Encrypt sont valides pendant 90 jours. Entrez la ligne suivante dans le fichier crontab, puis enregistrez le fichier :
Apache

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

Nginx

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/nginx/sbin/nginx -c /opt/bitnami/nginx/conf/nginx.conf -s reload

Remarque : Remplacez EMAIL-ADDRESS, DOMAIN et DNS par vos valeurs. Configurez la redirection HTTPS. Pour plus d'informations, consultez Forcer la redirection HTTPS avec Apache et Forcer la redirection HTTPS avec NGINX sur le site Web de Bitnami.

Package Certbot

Prérequis :

  • Installez Certbot.
  • Déterminez votre distribution Linux. Pour les instances hébergées par Bitnami, la distribution Linux est Debian ou Ubuntu. Exécutez la commande suivante pour confirmer votre distribution Linux :
    cat /etc/os-release | grep -i ^id
    Remarque : Cette méthode ne prend pas en charge le renouvellement automatique des certificats.

Pour utiliser le package Certbot afin d'installer un certificat SSL Let's Encrypt générique, procédez comme suit :

  1. Démarrez une session Linux GNU Screen. Comme l'ajout d'enregistrements TXT dans le fournisseur DNS du domaine prend du temps, la session peut expirer. Il est recommandé d'exécuter les commandes dans Linux GNU Screen afin que la séance n'expire pas. Pour démarrer une session Screen, exécutez la commande suivante :

    screen -S letsencrypt
  2. Pour démarrer le mode interactif de Certbot, exécutez la commande suivante :

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

    Remarque : Remplacez example.com par votre valeur.
    Si vous recevez une réponse d’erreur, telle que « bash: certbot: command not found », vous devrez peut-être ajouter /bin/snap à votre variable d’environnement PATH. Tout d'abord, entrez « exit » et appuyez sur Entrée. Vous pouvez également appuyer sur Ctrl + D pour quitter la session Screen. Modifiez ensuite **/etc/environment ** et ajoutez /snap/bin dans la liste. Redémarrez votre système. Pour vérifier qu'il n'y a plus d'erreur, exécutez la commande suivante :

    $ certbot -h
  3. Copiez les enregistrements TXT fournis par Let's Encrypt. Let's Encrypt fournit un ou plusieurs enregistrements TXT que vous devez utiliser pour la vérification.

  4. Ajoutez l'enregistrement fourni dans le DNS de votre domaine.
    Important : N'appuyez pas sur Entrée tant que vous n'avez pas confirmé que l'enregistrement TXT est propagé au DNS Internet. De même, n'appuyez pas sur Ctrl + D car cette action met fin à la session Screen.

  5. Pour confirmer que l'enregistrement a été propagé, recherchez-le sur DNS Text Lookup sur le site web de MxToolbox :

    _acme-challenge.example.com

    Remarque : Remplacez example.com par votre valeur.
    Si vos enregistrements TXT sont propagés, la valeur de l'enregistrement TXT s'affiche sur la page. Retournez à l'écran précédent et appuyez sur Entrée.

  6. Si vous avez été exclu du shell, exécutez la commande suivante pour revenir au shell :

    Screen -r SESSIONID

    Remarque : Exécutez la commande screen -ls pour obtenir l’ID de séance.

  7. (Facultatif) Si vous y êtes invité, répétez les étapes précédentes pour ajouter un autre enregistrement TXT.
    Remarque : Si vous utilisez Route 53 pour votre fournisseur DNS, entrez une valeur TXT par ligne. Modifiez l'enregistrement TXT, puis, dans une nouvelle ligne, ajoutez la valeur TXT fournie par certbot.

  8. Enregistrez les emplacements des certificats SSL et des fichiers de clé. Une fois le certificat SSL généré, le message « Certificat reçu avec succès » s'affiche.

  9. Pour configurer votre serveur Web afin qu'il utilise le certificat, exécutez les commandes suivantes en fonction de votre serveur et de votre approche :
    Apache, approche A

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    Apache, approche B

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    NGINX, approche A

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    NGINX, approche B

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    Remarque : Pour les commandes précédentes, remplacez DOMAIN par votre nom de domaine.

  10. Configurez la redirection HTTPS. Pour plus d'informations, consultez Forcer la redirection HTTPS avec Apache et Forcer la redirection HTTPS avec NGINX sur le site Web de Bitnami.

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