Je ne parviens pas à me connecter à une URL distante depuis mon instance Amazon Elastic Compute Cloud (Amazon EC2) qui utilise un certificat Let's Encrypt. Ou bien, je reçois un message d'erreur indiquant que mon certificat Let's Encrypt a expiré.
Brève description
Si votre certificat DST Root CA X3 à signature croisée Let's Encrypt a expiré, vous recevez une erreur d’expiration du certificat. Pour résoudre ce problème, mettez à niveau le package correspondant à votre système d'exploitation.
À des fins de compatibilité, les certificats Let's Encrypt utilisent une chaîne de certificats à signature croisée par le certificat DST Root CA X3 qui a expiré le 30 septembre 2021. OpenSSL 1.0.2 préfère la chaîne non approuvée. Cela signifie que le processus de validation de la certification OpenSSL voit le certificat expiré et désapprouve la chaîne entière comme étant expirée. Les serveurs dotés d'OpenSSL 1.0.2 et du certificat DST Root CA X3 dans leur stockage racine ne peuvent ni émettre ni renouveler de certificats Let's Encrypt. Les serveurs concernés ne peuvent pas non plus accéder aux serveurs qui utilisent les certificats Let's Encrypt.
Les instances EC2 qui exécutent le système d'exploitation suivant peuvent rencontrer des problèmes avec les certificats Let's Encrypt :
- CentOS et Red Hat Enterprise Linux (RHEL) 7 ou version antérieure
- Amazon Linux 1 (AL1) et Amazon Linux 2 (AL2)
- Ubuntu 16.04 ou version antérieure
- Debian 8 ou version antérieure
Résolution
Mettre à jour le package dans Ubuntu
Pour Ubuntu 16.04, mettez à jour OpenSSL vers la version 1.0.2g-1ubuntu4.20 ou ultérieure. Pour plus d'informations, consultez la section Problème de compatibilité d'une ancre d’approbation arrivée à expiration sur le site Web de Launchpad.
Remarque : les versions d'Ubuntu antérieures à 16.04 sont en fin de vie. Ubuntu ne prend pas en charge ces versions, même si une intervention manuelle est possible.
Mettre à jour le package dans AL1 ou AL2
Pour AL1 ou AL2, vous pouvez relancer l'instance pour appliquer automatiquement le package ca-certificate mis à jour.
Pour mettre à jour une instance existante, exécutez la commande suivante pour mettre à jour les certificats CA :
sudo yum update ca-certificates
Si vous utilisez une Amazon Machine Image (AMI) avec un GUID de référentiel verrouillé, tel qu'AWS Elastic Beanstalk, vous devez installer un package ca-certificates mis à jour. Exécutez l'une des commandes suivantes en fonction de votre version d'Amazon Linux.
AL1 :
sudo yum install https://cdn.amazonlinux.com/patch/ca-certificates-update-2021-09-30/ca-certificates-2018.2.22-65.1.24.amzn1.noarch.rpm
AL2 :
sudo yum install https://cdn.amazonlinux.com/patch/ca-certificates-update-2021-09-30/ca-certificates-2021.2.50-72.amzn2.0.1.noarch.rpm
Il est recommandé d'utiliser la commande yum pour mettre à jour les instances existantes. Toutefois, pour modifier le système en place, exécutez l'une des commandes suivantes :
AL1 :
sudo sed -i'' '/Alias: DST Root CA X3/,/No Rejected Uses./d' /usr/share/pki/ca-trust-source/ca-bundle.trust.crtsudo update-ca-trust
AL2 :
sudo sed -i'' '/DST Root CA X3/,/\[p11-kit-object-v1\]/d' /usr/share/pki/ca-trust-source/ca-bundle.trust.p11-kit sudo update-ca-trust
Mettre à jour le package dans RHEL ou CentOS
Pour RHEL 7 et CentOS 7, mettez à jour le package ca-certificates vers 2021.2.50-72.el7_9 ou version ultérieure. Pour obtenir des instructions, consultez la page Comment appliquer les mises à jour de packages à mon système RHEL ? sur le site Web de Red Hat.
Si vous rencontrez toujours des problèmes dans votre instance RHEL après la mise à niveau, vous devez bloquer manuellement le certificat DST Root CA X3. Procédez comme suit :
-
Exécutez la commande suivante pour sauvegarder le stockage racine existant :
cp -i /etc/pki/tls/certs/ca-bundle.crt ~/ca-bundle.crt-backup
-
Exécutez la commande suivante pour ajouter le certificat au répertoire de liste de refus :
trust dump --filter "pkcs11:id=%c4%a7%b1%a4%7b%2c%71%fa%db%e1%4b%90%75%ff%c4%15%60%85%89%10" | openssl x509 | sudo tee /etc/pki/ca-trust/source/blacklist/DST-Root-CA-X3.pem
-
Exécutez la commande suivante pour mettre à jour le stockage racine :
sudo update-ca-trust extract
-
Exécutez la commande suivante pour vérifier que vous avez supprimé le certificat :
diff ~/ca-bundle.crt-backup /etc/pki/tls/certs/ca-bundle.crt
Informations connexes
Étendre la compatibilité des appareils Android pour les certificats Let's Encrypt sur le site Web de Let's Encrypt