¿Cómo se renueva un certificado SSL de Let's Encrypt en una pila de Bitnami alojada en una instancia de Lightsail?

Actualización más reciente: 21-10-2021

El certificado SSL Let's Encrypt instalado para el sitio web en una instancia Bitnami de Amazon Lightsail está a punto de expirar. ¿Cómo se renueva?

Descripción breve

Los certificados SSL de Let's Encrypt expiran 90 días después de su creación. Si instaló un certificado estándar de Let's Encrypt según los pasos que se indican en ¿Cómo se instala un certificado estándar de Let's Encrypt en una pila de Bitnami alojada en Amazon Lightsail?, el certificado SSL se renueva automáticamente. Sin embargo, se puede producir un error en la renovación automática si la configuración no es correcta.

Si instaló un certificado Let's Encrypt comodín según el método 2 en ¿Cómo se instala un certificado SSL Let's Encrypt comodín en una pila Bitnami alojada en Amazon Lightsail?, debe renovar el certificado manualmente. El método 2 no admite la renovación automática.

La siguiente resolución contempla la renovación manual del certificado en las instancias de Lightsail alojadas en Bitnami, como WordPress, LAMP, Magento, MEAN, etc. La siguiente resolución no ofrece orientación sobre cómo averiguar por qué falló la renovación automática.

Resolución

Antes de comenzar

Identifique cuál de las siguientes herramientas utilizó para instalar el certificado:

  • Cliente “Lego” o “bncert-tool” proporcionado por Bitnami
  • Paquete “Certbot”

Para identificar la herramienta que utilizó para instalar el certificado SSL, haga lo siguiente:

1.    Ejecute el siguiente comando para buscar el archivo de certificado en los directorios /etc/letsencrypt y /opt/bitnami/letsencrypt. Asegúrese de reemplazar DOMINIO por el nombre de dominio.

sudo grep -irl "$(openssl s_client -verify_quiet -showcerts -connect DOMAIN:443 2>/dev/null | sed -n '/BEGIN/,/END/{p;/END/q}' | head -n 3 | tail -n 2)" /opt/bitnami/letsencrypt /etc/letsencrypt

2.    Si el archivo del certificado está dentro de los subdirectorios de /opt/bitnami/letsencrypt, significa que el certificado fue probablemente instalado mediante el cliente Lego o bncert-tool. Para verificar, ejecute el siguiente comando:

sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list

Si la salida del comando en el paso 1 coincide con la ruta del certificado proporcionada por el comando anterior, significa que el certificado fue instalado mediante bncert-tool o Lego.

Si el archivo del certificado está dentro de los subdirectorios de /etc/letsencrypt, significa que es probable que el certificado se haya instalado con Certbot. Para verificar, ejecute el siguiente comando:

sudo certbot certificates

Si la salida del comando del paso 1 coincide con la ruta del certificado proporcionada por el comando anterior (si la hay), significa que el certificado se instaló con Certbot.

Renueve un certificado Let's Encrypt instalado con bncert-tool o la herramienta Lego

Ejecute los siguientes comandos:

sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/ctlscript.sh start

En los comandos anteriores, sustituya DIRECCIÓN DE CORREO ELECTRÓNICO y DOMINIO por los valores correctos.

Puede utilizar cualquier dirección de correo electrónico que funcione. También puede utilizar la misma dirección de correo electrónico que utilizó al instalar el certificado. Puede recuperar el correo electrónico que utilizó al instalar el certificado mediante la ejecución del siguiente comando:

sudo ls /opt/bitnami/letsencrypt/accounts/acm*

Puede confirmar el nombre del dominio mediante la ejecución del siguiente comando:

sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list

Renueve un certificado de Let's Encrypt instalado con la herramienta Certbot

Determine el método de autenticación que utilizó para instalar el certificado. Para hacerlo, ejecute el siguiente comando: Sustituya DOMINIO por el nombre de dominio principal del certificado. Para determinar el nombre de dominio, ejecute el comando sudo certbot certificates.

sudo cat /etc/letsencrypt/renewal/DOMAIN.conf

En la salida del comando, consulte el valor del parámetro del autenticador.

Si el valor del parámetro autenticador es standalone, webroot, apache, nginx, dns-route53, etc, complete la renovación mediante la ejecución de los siguientes comandos:

sudo /opt/bitnami/ctlscript.sh stop
sudo certbot renew
sudo /opt/bitnami/ctlscript.sh start

Los comandos anteriores renuevan todos los certificados instalados que se deben renovar.

Si el valor del parámetro autenticador es manual y el valor del parámetro pref_challs es dns, no es posible configurar la renovación automática. Debe renovarlo manualmente. Para ello, siga los siguientes pasos. Tenga en cuenta que debe repetir este paso cada vez que renueve el certificado.

1.    Este método requiere agregar registros TXT en el proveedor de DNS del dominio. Es posible que este proceso dure algún tiempo, por lo que es una práctica recomendada ejecutar los comandos en la pantalla GNU de Linux para evitar que se agote el tiempo de espera de la sesión. Para iniciar una sesión de pantalla, ingrese el siguiente comando:

screen -S letsencrypt

2.    Ejecute el siguiente comando y busque el valor del parámetro Dominios. En el siguiente ejemplo, sustituya DOMINIO por el nombre de dominio principal del certificado.

sudo certbot certificates -d DOMAIN

3.    Ejecute el siguiente comando para renovar el certificado. Asegúrese de incluir cada dominio que encontró en el comando anterior mediante la opción -d en el mismo orden. Si incluye dominios adicionales, si elimina algún dominio actual o si cambia el orden de los dominios, es posible que se cree un nuevo certificado con el nombre DOMAIN-001 en lugar de renovar el certificado original.

sudo certbot certonly --manual --preferred-challenge dns -d DOMAIN-1 -d DOMAIN-2 --force-renewal

4.    Recibirá un mensaje para verificar que es el propietario del dominio especificado, donde se le pedirá que agregue registros TXT a los registros DNS del dominio. Let's Encrypt proporciona uno o varios registros TXT que debe usar para la verificación.

5.    Cuando vea un registro TXT en la pantalla, primero agregue el registro proporcionado en el DNS del dominio. NO PULSE INTRO hasta que confirme que el registro TXT se propaga al DNS de Internet. Además, NO PULSE CTRL+D, ya que terminará la sesión de pantalla actual.

6.    Para confirmar que el registro TXT se propaga al DNS de Internet, búsquelo en Búsqueda de texto de DNS. Ingrese el siguiente texto en el cuadro de texto y seleccione Búsqueda de TXT para ejecutar la verificación. Asegúrese de reemplazar example.com por el dominio.

_acme-challenge.example.com

7.    Si los registros TXT se han propagado al DNS de Internet, verá el valor del registro TXT en la página. Ahora puede volver a la pantalla y pulsar INTRO.

8.    Si lo quitan de shell, puede volver a entrar mediante el comando screen -r SESSIONID. Obtenga el ID de sesión mediante la ejecución del comando screen -ls.

9.    Si se le solicita por parte de Certbot que agregue otro registro TXT, vuelva a completar los pasos 5 -8.

10.    Después de que el certificado SSL se genere correctamente, recibirá el mensaje “Certificado recibido con éxito”.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?