Paso 1: Instalación de Certbot
El primer paso para usar Let’s Encrypt para obtener un certificado SSL es instalar el software Certbot en su servidor.
Nota : actualmente, Certbot no está disponible en los repositorios de software de Debian de forma predeterminada, pero es posible configurar el buster-backports
repositorio en su /etc/apt/sources.list
archivo para permitirle instalar una versión posterior del software Certbot con APT .
Los backports , sin embargo, son paquetes recompilados de los repositorios inestables y de prueba de Debian que han sido recompilados para ejecutarse en una distribución estable de Debian. Estos paquetes no se prueban regularmente y es posible que no siempre estén actualizados. En consecuencia, el backport de Certbot instalará la versión0.31mientras que la versión actual a partir de este escrito es1.09. Una diferencia notable entre estas versiones de Certbot es que la configuración predeterminada para la versión0.31habilitará TLS v1.0 y TLS v1.1, dos protocolos de seguridad que han quedado obsoletos en la mayoría de los principales navegadores web, y habilitar estos protocolos puede presentar una vulnerabilidad de seguridad. Si bien es posible cambiar este valor predeterminado, hacerlo puede interrumpir las actualizaciones automáticas que hacen que Certbot sea tan útil.
Hasta que una versión más reciente de Certbot esté disponible en los repositorios de Debian APT, este tutorial seguirá la recomendación de instalación de la versión de la documentación de Certbot.1.09con snappy , un administrador de paquetes desarrollado para sistemas Linux que instala paquetes en un formato denominado snaps .
Para instalar Certbot como un complemento en Debian, primero debe haberlo snapd
instalado en su servidor. snapd
es un demonio necesario para instalar, usar y administrar instantáneas. La instalación del snapd
paquete también instalará el snap
comando en su servidor.
Para instalar snapd
, actualice su índice de paquetes local si no lo ha hecho recientemente:
sudo apt update
Luego instale el snapd
:
sudo apt install snapd
Después de ejecutar este comando, se le pedirá que confirme que desea instalar snapd
y sus dependencias. Hágalo presionando Y
y luego ENTER
.
Luego, use el snap
comando para instalar el core
complemento. Esto instalará algunas dependencias en su servidor que son necesarias para cualquier complemento que instale, incluido el complemento Certbot:
sudo snap install core
Luego actualice el core
complemento. Si lo hace, se asegurará de tener snapd
instaladas las últimas versiones y sus dependencias:
sudo snap refresh core
Después de eso, puede instalar el certbot
complemento con el siguiente comando.
Tenga en cuenta que las instantáneas se pueden instalar en uno de los tres niveles de confinamiento que brindan diversos grados de aislamiento de su sistema. Por ejemplo, la mayoría de las instantáneas se instalan en el --strict
nivel de confinamiento de manera predeterminada, lo que evita que estos programas accedan a los archivos o la red de su sistema. Debido a que se debe permitir que Certbot edite ciertos archivos de configuración para configurar correctamente los certificados, este comando incluye la --classic
opción. Este nivel de confinamiento permite que cualquier instantánea instalada debajo de él tenga el mismo acceso a los recursos del sistema que los paquetes tradicionales:
apt install certbot
Instalación de python3
sudo apt install python3-certbot-apache
Instalación de classic certbot
sudo snap install --classic certbot
Este proceso de instalación instalará el certbot
ejecutable en el /snap/bin/
directorio. Cree un enlace simbólico a este archivo en el /usr/bin/
directorio para asegurarse de que puede ejecutar el certbot
comando en cualquier parte de su sistema:
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Certbot ahora está listo para usar, pero para que configure SSL para Apache, debemos verificar que Apache se haya configurado correctamente.
Paso 2: Configuración del certificado SSL
Certbot necesita poder encontrar el host virtual correcto en su configuración de Apache para configurar automáticamente SSL. Específicamente, lo hace buscando una ServerName
directiva que coincida con el dominio para el que solicita un certificado.
Si siguió el paso de configuración del host virtual en el tutorial de instalación de Apache , debería tener un VirtualHost
bloque para su dominio con la directiva ya configurada correctamente./etc/apache2/sites-available/your_domain.confServerName
Para verificar, abra el archivo de host virtual para su dominio usando nano
su editor de texto favorito:
sudo nano /etc/apache2/sites-available/your_domain.conf
Encuentra la ServerName
línea existente. Debería verse así, con su propio nombre de dominio en lugar de your_domain
:/etc/apache2/sitios-disponibles/su_dominio.conf
...
ServerName your_domain;
...
Si aún no lo hace, actualice la ServerName
directiva para que apunte a su nombre de dominio. Luego guarde el archivo y salga de su editor. Si usó nano
, hágalo presionando CTRL + X
, Y
y luego ENTER
.
A continuación, verifique la sintaxis de sus cambios de configuración:
sudo apache2ctl configtest
Si no hay ningún error de sintaxis, verá esto en su salida:
Output. . .
Syntax OK
Si obtiene un error, vuelva a abrir el archivo de host virtual y verifique que no haya errores tipográficos o que falten caracteres. Una vez que la sintaxis de su archivo de configuración sea correcta, vuelva a cargar Apache para cargar la nueva configuración:
sudo systemctl reload apache2
Certbot ahora puede encontrar el VirtualHost
bloque correcto y actualizarlo.
A continuación, actualicemos el firewall para permitir el tráfico HTTPS.
Paso 3: Permitir HTTPS a través del cortafuegos
Si tiene ufw
habilitado el firewall, como se recomienda en las guías de requisitos previos, deberá ajustar la configuración para permitir el tráfico HTTPS. Afortunadamente, cuando se instala en Debian, ufw
viene con algunos perfiles que ayudan a simplificar el proceso de cambiar las reglas del firewall para el tráfico HTTP y HTTPS.
Puede ver la configuración actual escribiendo:
sudo ufw status
Si siguió el Paso 2 de nuestra guía sobre Cómo instalar Apache en Debian 10 , el resultado de este comando se verá así, mostrando que solo se permite el tráfico HTTP al servidor web:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
WWW ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
WWW (v6) ALLOW Anywhere (v6)
Para permitir adicionalmente el tráfico HTTPS, permita el perfil «WWW completo» y elimine la asignación de perfil «WWW» redundante:
sudo ufw allow 'WWW Full'
sudo ufw delete allow 'WWW'
Su estado ahora debería verse así:
sudo ufw status
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
WWW Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
WWW Full (v6) ALLOW Anywhere (v6)
A continuación, ejecutemos Certbot y obtengamos nuestros certificados.
Paso 4: Obtener un certificado SSL
Certbot proporciona una variedad de formas de obtener certificados SSL a través de complementos. El complemento de Apache se encargará de reconfigurar Apache y recargar la configuración cuando sea necesario. Para usar este complemento, escriba lo siguiente:
sudo certbot --apache -d your_domain -d www.your_domain
Esto se ejecuta certbot
con el --apache
complemento y se usa -d
para especificar los nombres para los que desea que el certificado sea válido.
Si es la primera vez que corre certbot
, se le pedirá que ingrese una dirección de correo electrónico y acepte los términos del servicio. Además, le preguntará si está dispuesto a compartir su dirección de correo electrónico con Electronic Frontier Foundation , una organización sin fines de lucro que defiende los derechos digitales y también es el fabricante de Certbot. Siéntase libre de ingresar Y
para compartir su dirección de correo electrónico o N
para rechazar.
Después de hacerlo, certbot
se comunicará con el servidor Let’s Encrypt, luego ejecutará un desafío para verificar que controla el dominio para el que está solicitando un certificado.
Si eso tiene éxito, la configuración se actualizará automáticamente y Apache se volverá a cargar para recoger la nueva configuración. certbot
terminará con un mensaje que le indicará que el proceso fue exitoso y dónde se almacenan sus certificados:
Output. . .
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/your_domain/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/your_domain/privkey.pem
Your cert will expire on 2021-01-20. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Sus certificados se descargan, instalan y cargan. Intente volver a cargar su sitio web usando https://
y observe el indicador de seguridad de su navegador. Debe indicar que el sitio está debidamente protegido, generalmente con un ícono de candado verde. Si prueba su servidor utilizando SSL Labs Server Test , obtendrá una calificación A.
Terminemos probando el proceso de renovación.
Paso 5: Verificación de la renovación automática de Certbot
Los certificados de Let’s Encrypt solo son válidos durante noventa días. Esto es para animar a los usuarios a automatizar su proceso de renovación de certificados. El certbot
paquete que instalamos se encarga de esto agregando un script de renovación a /etc/cron.d
. Este script se ejecuta dos veces al día y renovará automáticamente cualquier certificado que esté dentro de los treinta días de vencimiento.
Para probar el proceso de renovación, puede hacer una prueba con certbot
:
sudo certbot renew --dry-run
Conclusión
Si no ve ningún error, ya está todo listo. Cuando sea necesario, Certbot renovará sus certificados y recargará Apache para recoger los cambios. Si el proceso de renovación automática falla alguna vez, Let’s Encrypt enviará un mensaje al correo electrónico que especificó, advirtiéndole cuando su certificado esté a punto de caducar.