Saltar al contenido

¿Cómo soluciono un error de caducidad del certificado Let's Encrypt en mi instancia de Amazon EC2?

4 minutos de lectura
0

No puedo conectarme a una URL remota desde mi instancia de Amazon Elastic Compute Cloud (Amazon EC2) que tenga un certificado Let's Encrypt. O bien, recibo un mensaje de error que dice que mi certificado de Let's Encrypt ha caducado.

Descripción corta

Si tu certificado DST Root CA X3 con firma cruzada de Let's Encrypt ha caducado, verás un error de certificado caducado. Para resolver este problema, actualiza el paquete para tu sistema operativo (SO).

Por motivos de compatibilidad, los certificados de Let's Encrypt utilizan una cadena de certificados que está firmada por el certificado DST Root CA X3 que caducó el 30 de septiembre de 2021. OpenSSL 1.0.2 funciona mejor con la cadena que no es de confianza. Esto significa que el proceso de validación de la certificación de OpenSSL detecta que el certificado ha caducado y desconfía de toda la cadena porque ha caducado. Los servidores con OpenSSL 1.0.2 y el certificado DST Root CA X3 en su almacén raíz no pueden emitir ni renovar los certificados de Let's Encrypt. Los servidores afectados tampoco pueden acceder a los servidores que utilizan los certificados de Let's Encrypt.

Las instancias EC2 que ejecutan el siguiente sistema operativo pueden tener problemas con los certificados de Let's Encrypt:

  • CentOS y Red Hat Enterprise Linux (RHEL) 7 o inferior
  • Amazon Linux 1 (AL1) y Amazon Linux 2 (AL2)
  • Ubuntu 16.04 o inferior
  • Debian 8 o inferior

Resolución

Actualización del paquete en Ubuntu

En Ubuntu 16.04, actualiza OpenSSL a la versión 1.0.2g-1ubuntu4.20 o posterior. Para obtener más información, consulta Expiring trust anchor compatibility issue (Problema de compatibilidad con los anclajes de confianza que caducan) en el sitio web de Launchpad.

Nota: Las versiones de Ubuntu anteriores a la 16.04 han llegado al final de su vida útil. Ubuntu no admite estas versiones, incluso si es posible la intervención manual.

Actualización del paquete en AL1 o AL2

En AL1 o AL2, puedes volver a lanzar la instancia para aplicar automáticamente el paquete ca-certificate actualizado.

Para actualizar una instancia existente, ejecuta el siguiente comando para actualizar los paquetes ca-certificate:

sudo yum update ca-certificates

Si usas una imagen de máquina de Amazon (AMI) con un GUID de repositorio bloqueado, como AWS Elastic Beanstalk, debes instalar un paquete ca-certificates actualizado. Ejecuta uno de los siguientes comandos en función de tu versión de 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

Se recomienda utilizar el comando yum para actualizar las instancias existentes. Sin embargo, para modificar el sistema actual, ejecuta uno de los siguientes comandos:

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

Actualización del paquete en RHEL o CentOS

En RHEL 7 y CentOS 7, actualiza el paquete ca-certificates a la versión 2021.2.50-72.el7_9 o posterior. Para obtener instrucciones, consulta How do I apply package updates to my RHEL system? (¿Cómo aplico las actualizaciones de paquetes a mi sistema RHEL?) en el sitio web de Red Hat.

Si sigues teniendo problemas en tu instancia de RHEL después de la actualización, debes bloquear manualmente el certificado DST Root CA X3. Sigue estos pasos:

  1. Ejecuta el siguiente comando para hacer una copia de seguridad del almacén raíz existente:

    cp -i /etc/pki/tls/certs/ca-bundle.crt ~/ca-bundle.crt-backup
  2. Ejecuta el siguiente comando para agregar el certificado al directorio de la lista de denegación:

    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
  3. Ejecuta el siguiente comando para actualizar el paquete:

    sudo update-ca-trust extract
  4. Ejecuta el siguiente comando para comprobar que has eliminado el certificado:

    diff ~/ca-bundle.crt-backup /etc/pki/tls/certs/ca-bundle.crt

Información relacionada

Extending Android device compatibility for Let's Encrypt certificates (Ampliación de la compatibilidad de los dispositivos Android para los certificados de Let's Encrypt) en el sitio web de Let's Encrypt

OFICIAL DE AWSActualizada hace 6 meses