Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Habilite HTTPS en su instancia LAMP con Let's Encrypt y Certbot
Amazon Lightsail facilita la protección de sus sitios web y aplicaciones con el SSL/TLS uso de los balanceadores de carga de Lightsail. Sin embargo, utilizar un balanceador de carga de Lightsail no suele ser la elección correcta. Quizás su sitio no necesita la escalabilidad o la tolerancia a errores que proporcionan los balanceadores de carga, o quizás necesita optimizar costos.
En este último caso, puede considerar el uso de Let's Encrypt para obtener un certificado SSL gratuito. En este tutorial, se muestra cómo solicitar un certificado comodín de Let's Encrypt mediante Certbot y cómo configurarlo en la instancia de LAMP empaquetada por Lightsail.
Contenido
Paso 1: completar los requisitos previos
Complete los siguientes requisitos previos si aún no lo ha hecho:
-
Cree una instancia de LAMP en Lightsail. Para obtener más información, consulte Crear una instancia.
-
Registre un nombre de dominio y obtenga acceso administrativo para editar sus registros de DNS. Para obtener más información, consulte DNS.
nota
Le recomendamos que administre los registros DNS de su dominio mediante una zona DNS de Lightsail. Para obtener más información, consulte Crear una zona DNS para administrar los registros DNS de su dominio.
-
Utilice el terminal SSH basado en navegador de la consola de Lightsail para realizar los pasos de este tutorial. Sin embargo, también puede utilizar su propio cliente SSH, como PuTTY. Para obtener información sobre cómo configurar PuTTY, consulte Descargar y configurar PuTTY para conectarse mediante SSH.
Una vez que haya completado los requisitos previos, continúe en la siguiente sección de este tutorial.
Paso 2: Instale Certbot en su instancia de Lightsail
Certbot es un cliente que se utiliza para solicitar un certificado a Let's Encrypt e implementarlo en un servidor web. Let's Encrypt utiliza el protocolo ACME para emitir certificados, y Certbot es un ACME-enabled cliente que interactúa con Let's Encrypt.
Para instalar Certbot en su instancia de Lightsail
-
Inicie sesión en la consola de Lightsail
. -
En la pestaña Instancias de la página de inicio de Lightsail, elija el icono de conexión rápida SSH de la instancia a la que desee conectarse.
-
Una vez conectada la sesión SSH basada en el navegador Lightsail, introduzca el siguiente comando para actualizar los paquetes de la instancia:
sudo apt-get update -
Ingrese el siguiente comando para instalar el paquete de propiedades del software: Los desarrolladores de Certbot utilizan un Archivo de Paquetes Personales (PPA) para distribuir Certbot. El paquete de propiedades de software hace que sea más eficaz trabajar con PPA.
sudo apt-get install software-properties-common -y -
Ingrese el siguiente comando para actualizar apt para que incluya el nuevo repositorio:
sudo apt-get update -y -
Ingrese el siguiente comando para instalar Certbot:
sudo apt-get install certbot -yCertbot ya está instalado en su instancia de Lightsail.
Mantenga abierta la ventana de terminal de la sesión SSH basada en navegador; volverá a ella posteriormente en este tutorial. Continúe con la siguiente sección de este tutorial.
Paso 3: Solicitar un certificado comodín de SSL de Let's Encrypt
Comience el proceso de solicitud de un certificado de Let's Encrypt. Con Certbot, solicite un certificado comodín que le permita utilizar un solo certificado para un dominio y sus subdominios. Por ejemplo, un único certificado comodín funciona para el dominio de nivel superior example.com y los subdominios blog.example.com y stuff.example.com.
Para solicitar un certificado comodín SSL de Let's Encrypt
-
En la misma ventana de terminal SSH basada en el navegador que se utilizó en el paso anterior de este tutorial, introduzca los siguientes comandos para establecer una variable de entorno para su dominio. Asegúrese de sustituir
domainpor el nombre de dominio registrado.DOMAIN=domainWILDCARD=*.$DOMAINEjemplo:
DOMAIN=example.com WILDCARD=*.$DOMAIN -
Ingrese el siguiente comando para confirmar que las variables devuelven los valores correctos:
echo $DOMAIN && echo $WILDCARDDebería ver un resultado similar al siguiente:
-
Ingrese el siguiente comando para iniciar Certbot en modo interactivo. Este comando le indica a Certbot que use un método de autorización manual con desafíos de DNS para verificar la propiedad del dominio. Solicita un certificado comodín para su dominio de nivel superior, así como sus subdominios.
sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly -
Introduce tu dirección de correo electrónico cuando se te pida, ya que se utiliza para los avisos de renovación y seguridad.
-
Lee las condiciones del servicio de Let's Encrypt. Cuando haya terminado, pulse A si está de acuerdo. Si no está de acuerdo, no podrá obtener un certificado de Let's Encrypt.
-
Responda en consecuencia a la pregunta para compartir su dirección de correo electrónico y a la advertencia sobre el registro de la dirección IP.
-
Let's Encrypt ahora te pide que compruebes que eres el propietario del dominio especificado. Para ello, se añaden registros TXT para los registros de DNS del dominio. Se proporciona un conjunto de valores de registro TXT, tal y como se muestra en el siguiente ejemplo:
nota
Let's Encrypt puede proporcionar uno o varios registros TXT que debe utilizar para la verificación. En este ejemplo, se nos proporcionaron dos registros TXT para utilizarlos para la verificación.
Mantenga abierta la sesión SSH basada en el navegador Lightsail; volverá a ella más adelante en este tutorial. Continúe con la siguiente sección de este tutorial.
Paso 4: agregar registros TXT a la zona de DNS del dominio
Al agregar un registro TXT a la zona DNS de su dominio, se verifica que usted es el propietario del dominio. Para fines de demostración, utilizamos la zona DNS de Lightsail. Sin embargo, los pasos podrían ser similares para otras zonas DNS normalmente alojadas por registradores de dominio.
nota
Para obtener más información sobre cómo crear una zona DNS de Lightsail para su dominio, consulte Creación de una zona DNS para gestionar los registros DNS de su dominio en Lightsail.
Para añadir registros TXT a la zona DNS de su dominio en Lightsail
-
En el panel de navegación izquierdo, seleccione Dominios y DNS.
-
En la sección Zonas DNS de la página, elija la Zona DNS del dominio que ha especificado en la solicitud de certificado de Certbot.
-
En el editor de zona DNS, elija DNS records (Registros de DNS).
-
Elija Añadir registro.
-
En el menú desplegable Record type (Tipo de registro), elija TXT record (Registro TXT).
-
Introduzca los valores especificados en la solicitud de certificado Let's Encrypt en los campos Nombre del registro y Responde con.
nota
La consola de Lightsail rellena automáticamente la parte APEX del dominio. Por ejemplo, si desea agregar el subdominio
, entonces solo tiene que introducir_acme-challenge.example.comen el cuadro de texto, y Lightsail agrega la parte_acme-challenge.example.comen su lugar cuando guarda el registro. -
Seleccione Save.
-
Repita los pasos 4 a 7 para agregar el segundo conjunto de registros TXT especificado en la solicitud de certificado de Let's Encrypt.
Mantenga abierta la ventana del navegador de la consola Lightsail; volverá a ella más adelante en este tutorial. Continúe con la siguiente sección de este tutorial.
Paso 5: Confirmar que los registros TXT se han propagado
Utilice la MxToolbox utilidad para confirmar que los registros TXT se han propagado al DNS de Internet. La propagación de registros de DNS puede tardar un tiempo en función de su proveedor de alojamiento de DNS y el tiempo de vida (TTL) configurado para los registros de DNS. Es importante que realice este paso y que confirme que sus registros TXT se han propagado antes de continuar con la solicitud de certificado de Certbot. De lo contrario, se produce un error al solicitar el certificado.
Para confirmar que los registros TXT se han propagado al DNS de Internet
-
Abra una nueva ventana del navegador y vaya a https://mxtoolbox.com/TXTLookup.aspx
. -
Ingrese el siguiente texto en el cuadro de texto. Asegúrese de sustituir
domainpor su dominio._acme-challenge.domainEjemplo:
_acme-challenge.example.com
-
Elija TXT Lookup (Búsqueda de TXT) para realizar la comprobación.
-
Se obtiene una de las siguientes respuestas:
-
Si tus registros TXT se han propagado al DNS de Internet, verás una respuesta similar a la que se muestra en la siguiente captura de pantalla. Cierre la ventana del navegador y continúe en la siguiente sección de este tutorial.
-
Si tus registros TXT no se han propagado al DNS de Internet, verás la respuesta No se ha encontrado ningún registro DNS. Confirma que has añadido los registros DNS correctos a la zona DNS de tus dominios. Si has añadido los registros correctos, espera un poco más para que los registros DNS de tu dominio se propaguen y vuelve a ejecutar la búsqueda en formato TXT.
-
Paso 6: Completa la solicitud de certificado SSL de Let's Encrypt
Regrese a la sesión SSH basada en el navegador Lightsail de su instancia LAMP y complete la solicitud de certificado Let's Encrypt. Certbot guarda sus archivos de certificados SSL, de cadena y de clave en un directorio específico en su instancia de LAMP.
Para completar la solicitud del certificado SSL de Let's Encrypt
-
En la sesión SSH basada en el navegador Lightsail de su instancia de LAMP, pulse Entrar para continuar con la solicitud del certificado SSL de Let's Encrypt. Si se realiza correctamente, aparece una respuesta similar a la que se muestra en la siguiente captura de pantalla:
El mensaje confirma que sus archivos de certificado, de cadena y de clave están almacenados en el directorio
/etc/letsencrypt/live/. Asegúrese de sustituirdomain/domainpor su dominio, como/etc/letsencrypt/live/example.com/. -
Anote la fecha de vencimiento especificada en el mensaje. Puede utilizarla para renovar su certificado en dicha fecha.
Paso 7: Cree enlaces a los archivos de certificado de Let's Encrypt en el directorio del servidor LAMP
Cree enlaces a los archivos del certificado SSL de Let's Encrypt en el directorio del servidor LAMP de su instancia de LAMP. Además, haga una copia de seguridad de los certificados existentes, por si los necesita más adelante.
Para crear enlaces a los archivos de certificado de Let's Encrypt del directorio del servidor LAMP
-
En la sesión SSH basada en el navegador Lightsail de su instancia de LAMP, introduzca el siguiente comando para detener los servicios subyacentes:
sudo systemctl stop apache2 sudo systemctl stop mariadb -
Ejecute el siguiente comando para cambiar la configuración de SSL:
sudo sed \ -i -e "s|SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem|SSLCertificateFile /etc/letsencrypt/live/$DOMAIN/fullchain.pem|g" \ -i -e "s|SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key|SSLCertificateKeyFile /etc/letsencrypt/live/$DOMAIN/privkey.pem|g" \ /etc/apache2/sites-enabled/default-ssl.confnota
Si has cerrado la ventana del terminal SSH del navegador desde que configuraste la
DOMAINvariable en el paso 3,DOMAIN=vuelve a ejecutarla yexample.comexample.comsustitúyela por tu dominio. -
Ingresa el siguiente comando para reiniciar apache2:
sudo systemctl restart apache2 sudo systemctl restart mariadbSu instancia de LAMP ya está configurada para redireccionar automáticamente las conexiones de HTTP a HTTPS. Cuando un visitante se dirige a
http://www.example.com, se le redirige automáticamente a la dirección cifradahttps://www.example.com.
Paso 8: renueve los certificados de Let's Encrypt cada 90 días
Los certificados Let's Encrypt son válidos durante 90 días. Los certificados se pueden renovar 30 días antes de que caduquen. Para renovar los certificados de Let's Encrypt, ejecute el comando original que utilizó para obtenerlos. Repita los pasos de la sección Solicitar un certificado comodín SSL de Let's Encrypt de este tutorial.