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

9 minutos de lectura
0

Quiero instalar un certificado SSL comodín para mi sitio web en una instancia de Amazon Lightsail con una pila de Bitnami.

Breve descripción

Para obtener información sobre cómo instalar un esquema de instancia diferente o un certificado estándar, consulte los siguientes artículos del Centro de conocimientos de AWS:

Resolución

Los pasos para instalar un certificado SSL Let's Encrypt comodín en una instancia de Lightsail alojada en Bitnami dependen del proveedor de DNS que utilice su dominio. Compruebe si su proveedor de DNS aparece en la lista de proveedores de DNS del sitio web de Lego. A continuación, seleccione el método apropiado que desee utilizar:

  • Si su dominio usa uno de los proveedores de DNS de la lista, use la herramienta Lego que proporciona Bitnami.
  • Si tu dominio no usa uno de los proveedores de DNS de la lista, use el paquete de Certbot.

Nota: Las rutas de los archivos dependen de si la pila de Bitnami utiliza paquetes de sistema Linux nativos (enfoque A) o una instalación autónoma (enfoque B). Los planos de WordPress más recientes de Bitnami solo están disponibles para el enfoque A.

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

Herramienta Lego

Bitnami proporciona la herramienta bncert-tool y la herramienta Lego. La herramienta Lego admite la creación de certificados SSL comodín. La herramienta bncert no admite la creación de certificados SSL comodín.

Nota: En el siguiente ejemplo, el proveedor de DNS es Amazon Route 53 y Amazon Lightsail.

Para usar la herramienta Lego para instalar un certificado SSL comodín de Let's Encrypt, siga estos pasos:

  1. Cree un usuario de AWS Identity and Access Management (IAM) con acceso programático. Para determinar los permisos de usuario de IAM necesarios para que Lego complete el desafío de DNS, consulte los ejemplos de políticas de IAM en el sitio web de Lego.

  2. Para abrir el archivo /root/.aws/credentials en el editor nano, ejecute el siguiente comando:

    sudo mkdir /root/.aws
    sudo nano /root/.aws/credentials
  3. Introduzca las siguientes líneas en el archivo de credenciales:

    [default]
    aws_access_key_id = AKIA************E
    aws_secret_access_key = 1yop**************************l
    region = us-east-1

    Nota: Sustituya aws_access_key_id y aws_secret_access_key por sus valores. Sustituya us-east-1 por la región de AWS de su instancia de Lightsail.

  4. Para guardar el archivo, pulse Ctrl + X, luego y y, a continuación, pulse Intro.

  5. Si tu instancia de Bitnami no incluye el directorio /opt/bitnami/letsencrypt/, ejecute el siguiente comando para instalar manualmente el cliente de Lego:

    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 xzf lego.tar.gz
    sudo mkdir -p /opt/bitnami/letsencrypt
    sudo mv lego /opt/bitnami/letsencrypt/lego
  6. Para crear un certificado Let's Encrypt comodín en el servidor, ejecute el siguiente comando según el tipo de servidor:
    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 DNS_ZONE=DOMAIN /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns lightsail --path="/opt/bitnami/letsencrypt" run

    Nota: Sustituya EMAIL-ADDRESS por la dirección de correo electrónico en la que desea recibir las actualizaciones del certificado. Sustituya DOMAIN por su nombre de dominio.
    El certificado SSL y la clave privada se generan en las siguientes ubicaciones: /opt/bitnami/letsencrypt/certificates/DOMAIN.crt o /opt/bitnami/letsencrypt/certificates/DOMAIN.key.

  7. Para detener los servicios de pila de Bitnami, ejecute el siguiente comando:

    sudo /opt/bitnami/ctlscript.sh stop
  8. Vincule el certificado SSL y el archivo de clave de certificado a las ubicaciones que lee actualmente su servidor web, según su servidor y enfoque:
    Apache, enfoque A

    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

    Apache, enfoque B

    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

    NGINX, enfoque A

    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

    NGINX, enfoque B

    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

    Nota: Para los comandos anteriores, sustituya DOMAIN por su nombre de dominio.

  9. Para iniciar los servicios de pila de Bitnami, ejecute el siguiente comando:

    sudo /opt/bitnami/ctlscript.sh start
  10. Para automatizar la renovación de certificados, ejecute el siguiente comando para abrir el editor crontab:

sudo crontab -e -u bitnami

Nota: Los certificados de Let's Encrypt son válidos durante 90 días. Introduzca la siguiente línea en el archivo crontab y, a continuación, guarde el archivo:
Apache

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

Nginx

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/nginx/sbin/nginx -c /opt/bitnami/nginx/conf/nginx.conf -s reload

Nota: Sustituya EMAIL-ADDRESS, DOMAIN y DNS por sus valores. Configure el redireccionamiento HTTPS. Para obtener más información, consulte Forzar el redireccionamiento HTTPS con Apache y Forzar el redireccionamiento HTTPS con NGINX en el sitio web de Bitnami.

Paquete de Certbot

Requisitos previos:

  • Instale Certbot.
  • Determine su distribución de Linux. Para las instancias alojadas en Bitnami, la distribución de Linux es Debian o Ubuntu. Ejecute el siguiente comando para confirmar la distribución de Linux:
    cat /etc/os-release | grep -i ^id
    Nota: Este método no admite la renovación automática de certificados.

Para usar el paquete de Certbot para instalar un certificado SSL comodín de Let's Encrypt, siga estos pasos:

  1. Inicie una sesión de Linux GNU Screen. Como lleva tiempo agregar registros TXT en el proveedor de DNS del dominio, la sesión puede agotar el tiempo de espera. Se recomienda ejecutar los comandos en Linux GNU Screen para evitar que se agote el tiempo de espera de la sesión. Para iniciar una sesión en Screen, ejecute el siguiente comando:

    screen -S letsencrypt
  2. Para iniciar el modo interactivo de Certbot, ejecute el siguiente comando:

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

    Nota: Sustituya example.com por su valor.
    Si recibe una respuesta de error, como «bash: certbot: command not found», es posible que tenga que añadir /bin/snap a su variable de entorno PATH. Primero, escriba «exit» y presione Intro. O bien, pulse Ctrl + D para salir de la sesión de Screen. A continuación, edite /etc/environment y añada /snap/bin a la lista. Reinicie el sistema. Para confirmar que ya no hay ningún error, ejecute el siguiente comando:

    $ certbot -h
  3. Copie los registros TXT que proporciona Let's Encrypt. Let's Encrypt proporciona uno o varios registros TXT que debe usar para la verificación.

  4. Añada el registro proporcionado en el DNS de su dominio.
    Importante: No presione Intro hasta que confirme que el registro TXT se ha propagado al DNS de Internet. Además, no presione Ctrl + D porque esa acción termina la sesión de Screen.

  5. Para confirmar que el registro se propagó, busque el registro TXT en DNS text lookup en el sitio web de MxToolbox:

    _acme-challenge.example.com

    Nota: Sustituya example.com por su valor.
    Si sus registros TXT se han propagado, verá el valor del registro TXT en la página. Vuelva a la pantalla anterior y pulse Intro.

  6. Si le eliminan del shell, ejecute el siguiente comando para volver al shell:

    Screen -r SESSIONID

    **Nota:**Ejecute el comando screen -ls para obtener el identificador de sesión.

  7. (Opcional) Si se le pide, repita los pasos anteriores para agregar otro registro TXT.
    Nota: Si usa Route 53 para su proveedor de DNS, introduzca un valor TXT por fila. Edite el registro TXT y, a continuación, en una nueva fila, agregue el valor TXT que proporciona Certbot.

  8. Guarde las ubicaciones de los archivos del certificado SSL y del archivo de claves. Una vez generado el certificado SSL, recibirá el mensaje «Certificado recibido correctamente».

  9. Para configurar su servidor web para usar el certificado, ejecute los siguientes comandos según su servidor y enfoque:
    Apache, enfoque A

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    Apache, enfoque B

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    NGINX, enfoque A

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    NGINX, enfoque B

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    Nota: Para los comandos anteriores, sustituya DOMAIN por su nombre de dominio.

  10. Configure el redireccionamiento HTTPS. Para obtener más información, consulte Forzar el redireccionamiento HTTPS con Apache y Forzar el redireccionamiento HTTPS con NGINX en el sitio web de Bitnami.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año