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

10 minutos de lectura
0

¿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 esquemas de instancias incluyen WordPress, LAMP, Magento, MEAN, etc. Si tiene un esquema de instancia diferente o desea instalar un certificado estándar, consulte una de las siguientes opciones:

Certificados estándar Let's Encrypt

Para instalar un certificado SSL Let's Encrypt estándar en una instancia de Lightsail sin una pila de Bitnami, consulte ¿Cómo instalo un certificado SSL Let's Encrypt estándar en una instancia de Lightsail? Esto incluye instancias como Amazon Linux 2 y Ubuntu.

Para instalar un certificado SSL Let's Encrypt estándar en una instancia de Lightsail con una pila de Bitnami, consulte ¿Cómo instalo un certificado SSL Let's Encrypt en una pila de Bitnami alojada en Amazon Lightsail? Esto incluye instancias como WordPress, LAMP y Magento.

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

Para instalar un certificado comodín Let's Encrypt en una instancia de Lightsail sin una pila de Bitnami, consulte ¿Cómo puedo instalar un certificado SSL Let's Encrypt comodín en Amazon Lightsail? Esto incluye instancias como Amazon Linux 2 y Ubuntu.

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 siguientes pasos se refieren a 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.

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/, entonces instale 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 del certificado.

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. 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.    Ingrese el siguiente comando para iniciar 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 el 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 del 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 del dominio.
Importante: No presione intro hasta que confirme que el registro TXT se propaga a DNS de Internet. Además, no pulse CTRL+D porque al hacerlo finalizará la sesión de pantalla.

5.    Para confirmar que el registro TXT se propagó al DNS de Internet, búsquelo en la Búsqueda de texto DNS en MxToolbox. 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

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

7.    Si lo sacan del shell, puede volver a entrar usando la pantalla de comandos -r SESSIONID. Obtenga el ID de sesión mediante la ejecución del comando screen -ls.

8.    Si se le solicita por parte de Certbot que agregue otro registro TXT, vuelva a completar los pasos 4-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. Todavía debe configurar el servidor web para utilizar este certificado y configurar la redirección 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:


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año