¿Cómo instalo un certificado SSL comodín Let's Encrypt en una pila Bitnami alojada en Amazon Lightsail?

Última actualización: 20/10/2021

¿Cómo instalo un certificado SSL comodín para mi sitio web en una instancia de Amazon Lightsail con una pila Bitnami?

Descripción corta

La siguiente resolución cubre la instalación de un certificado SSL comodín Let's Encrypt para sitios web alojados en una instancia de Lightsail con una pila Bitnami. Ejemplos de estos proyectos de instancias incluyen WordPress, LAMP, Magento, MEAN, etc. Si tiene un proyecto de instancias diferente o quiere instalar un certificado estándar, consulte una de las siguientes opciones:

Certificados estándar Let's Encrypt

Para obtener información sobre cómo instalar un certificado Let's Encrypt estándar en una instancia de Lightsail que no utiliza una pila Bitnami, como Amazon Linux 2, Ubuntu, etc., consulte ¿Cómo instalo un certificado SSL estándar Let's Encrypt en una instancia de Lightsail? 

Para obtener información sobre cómo instalar un certificado SSL estándar Let's Encrypt (no un comodín) en una instancia de Lightsail con una pila Bitnami, como WordPress, LAMP, Magento, etc., consulte ¿Cómo instalo un certificado SSL estándar Let's Encrypt en una pila de Bitnami alojada en Amazon Lightsail?

Certificados comodín Let's Encrypt (por ejemplo, *.example.com)

Para obtener información sobre la instalación de un certificado comodín Let's Encrypt en una instancia de Lightsail que no utiliza una pila Bitnami, como Amazon Linux 2, Ubuntu, etc., consulte ¿Cómo instalo un certificado SSL comodín Let's Encrypt en Amazon Lightsail?

Resolución

Los pasos que se utilizan para instalar un certificado SSL comodín Let's Encrypt en una instancia de Lightsail alojada en Bitnami dependen del proveedor de DNS que utilice su dominio. Para determinar qué método usar, verifique si su proveedor de DNS aparece en Proveedores de DNS en la documentación de Lego. A continuación, seleccione el método adecuado para usar:

Método 1: utilice la herramienta Lego proporcionada por Bitnami si su dominio utiliza uno de los proveedores de DNS listados.

Método 2: utilice el paquete Certbot si su dominio no utiliza ninguno de los proveedores DNS de la lista.

Nota: Las rutas de archivo mencionadas en este artículo pueden cambiar dependiendo de si la pila de Bitnami utiliza paquetes nativos del sistema Linux (enfoque A) o si se trata de una instalación autónoma (enfoque B). Para identificar el tipo de instalación de Bitnami, ejecute el siguiente comando:

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

Método 1

Junto con bncert-tool, la pila de Bitnami proporciona la herramienta Lego. Esta herramienta admite la creación de certificados SSL comodín, mientras que bncert-tool no.

Requisitos previos y limitaciones

  • Los pasos siguientes cubren la instalación del certificado en el servidor. Debe completar manualmente pasos adicionales, como configurar el servidor web para que use el certificado y configurar la redirección HTTPS.
  • El dominio debe utilizar uno de los proveedores de DNS enumerados en Proveedores de DNS en la documentación de Lego.

Nota: En el siguiente ejemplo, el proveedor de DNS es Amazon Route 53 o Amazon Lightsail. Para obtener instrucciones para otros proveedores de DNS compatibles, consulte Proveedores de DNS en la documentación de Lego.

1.    Cree un usuario de AWS Identity and Access Management (IAM) con acceso programático. Para conocer los permisos mínimos que se deben adjuntar al usuario de IAM para que Lego complete el desafío de DNS, consulte la Política en la documentación de Lego.

2.    Ejecute los siguientes comandos en la instancia para abrir el archivo /root/.aws/credentials en el editor de nano.

sudo mkdir /root/.aws
sudo nano /root/.aws/credentials

3.    Copie las siguientes líneas en el archivo. A continuación, guarde el archivo pulsando ctrl+x, después, y, y finalmente, INTRO.

En el siguiente comando, sustituya aws_access_key_id por el ID de clave de acceso creado en el paso 1. Reemplace aws_secret_access_key por la clave de acceso secreta creada en el paso 1.

[default]
aws_access_key_id = AKIA************E
aws_secret_access_key = 1yop**************************l

4.    Si su instancia de Bitnami no incluye el directorio /opt/bitnami/letsencrypt/, puede instalar manualmente el cliente Lego con los siguientes comandos:

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.    Cree un certificado Let's Encrypt en el servidor. Sustituya EMAIL-ADDRESS por la dirección de correo electrónico en la que quiere recibir más actualizaciones sobre su certificado. Reemplace DOMAIN por su nombre de dominio.

Servidores de nombres de Route 53

sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns route53 --path="/opt/bitnami/letsencrypt" run

Servidores de nombres de Lightsail

sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains"*.DOMAIN" --dns lightsail --path="/opt/bitnami/letsencrypt" run

Una vez que el certificado SSL se haya generado correctamente, recibirá el mensaje “Server responded with a certificate” (El servidor respondió con un certificado). El certificado SSL y la clave privada se generan en las siguientes ubicaciones:

/opt/bitnami/letsencrypt/certificates/DOMAIN.crt

/opt/bitnami/letsencrypt/certificates/DOMAIN.key

6.    Vincule el certificado SSL y el archivo de clave de certificado a las ubicaciones que su servidor web está leyendo actualmente:

Apache con el enfoque A

En los comandos de ejemplo siguientes, sustituya el marcador de posición DOMAIN por su nombre de dominio.

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 con el enfoque B

En los comandos de ejemplo siguientes, sustituya el marcador de posición DOMAIN por su nombre de dominio.

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 con el enfoque A

En los comandos de ejemplo siguientes, sustituya el marcador de posición DOMAIN por su nombre de dominio.

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 con el enfoque B

En los comandos de ejemplo siguientes, sustituya el marcador de posición DOMAIN por su nombre de dominio.

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.    Configure la renovación automática de certificados.

Los certificados Let's Encrypt tienen una validez de 90 días. Para automatizar la renovación del certificado de forma que el certificado se renueve automáticamente antes de que venza, haga lo siguiente:

Ejecute el siguiente comando para abrir el editor de crontab:

sudo crontab -e -u bitnami

Agregue las siguientes líneas al archivo de crontab y, a continuación, guarde el archivo. Sustituya EMAIL-ADDRESS por su dirección de correo electrónico, DOMAIN por su nombre de dominio y DNS por el nombre del proveedor del servidor de nombres (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.    Configure el redireccionamiento HTTPS. Para obtener más información, consulte la siguiente información en el sitio web de Bitnami:

Método 2

Requisitos previos y limitaciones

  • Los pasos siguientes cubren la instalación del certificado en el servidor. Debe seguir llevando a cabo pasos adicionales manualmente, como configurar el servidor web para que use el certificado y configurar la redirección HTTPS.
  • Este método no admite la renovación automática de certificados.

Nota: Antes de comenzar los pasos siguientes, instale Certbot. Para obtener instrucciones de instalación, consulte ¿Cómo instalo el paquete Certbot en mi instancia de Lightsail para instalar el certificado Let's Encrypt?

Para las instancias alojadas en Bitnami, la distribución de Linux es Debian o Ubuntu. Ejecute el siguiente comando para confirmar qué distribución de Linux tiene:

cat /etc/os-release | grep -i ^id

1.    Este método requiere agregar registros TXT en el proveedor de DNS del dominio. Este proceso puede llevar algún tiempo, por lo que es recomendable ejecutar los comandos en Linux GNU Screen para evitar que se agote el tiempo de espera de la sesión. Para comenzar una sesión de pantalla, ingrese el siguiente comando:

screen -S letsencrypt

2.    Ingrese el siguiente comando para comenzar Certbot en modo interactivo. Este comando indica a Certbot que utilice un método de autorización manual con desafíos de DNS para verificar la propiedad del dominio. Reemplace example.com por su nombre de dominio.

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

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

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

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

_acme-challenge.example.com

6.    Si sus 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.

7.    Si lo quitan de shell, puede volver a entrar usando la pantalla de comandos -r SESSIONID. Obtenga el ID de sesión ejecutando la pantalla de comandos -ls.

8.    Si el mensaje de Certbot le pide que agregue otro registro TXT, vuelva a completar los pasos 4 a 7.

9.    Una vez que el certificado SSL se haya generado correctamente, recibirá el mensaje “Successfully received certificate” (Certificado recibido correctamente). También se proporcionan las ubicaciones de los archivos de certificados y claves. Guarde estas ubicaciones de archivos en un bloc de notas para usarlas en el siguiente paso.

10.    Solo se ha completado la instalación y la configuración de renovación del certificado. Debe configurar el servidor web para que use este certificado y configurar el redireccionamiento HTTPS. Utilice uno de los siguientes conjuntos de comandos para configurar el servidor web de modo que use el certificado.

Apache con el enfoque A

En los comandos de ejemplo siguientes, sustituya el marcador de posición DOMAIN por su nombre de dominio.

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 con el enfoque B

En los comandos de ejemplo siguientes, sustituya el marcador de posición DOMAIN por su nombre de dominio.

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 con el enfoque A

En los comandos de ejemplo siguientes, sustituya el marcador de posición DOMAIN por su nombre de dominio.

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 con el enfoque B

En los comandos de ejemplo siguientes, sustituya el marcador de posición DOMAIN por su nombre de dominio.

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.    Configure el redireccionamiento HTTPS. Para obtener más información, consulte la siguiente información en el sitio web de Bitnami:


¿Le resultó útil este artículo?


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