Introducción
Let's Encrypt es una autoridad de certificación (CA) que automatiza la creación, validación, emisión y renovación de certificados X.509 para el protocolo TLS /SSL de forma gratuita, permitiendo HTTPS cifrado en servidores web.
En este tutorial, usaremos Certbot para obtener un certificado SSL gratuito para Apache en CentOS 8 y para configurar el certificado para la renovación automática.
Certbot es un cliente automatizado fácil de usar que recupera y distribuye certificados SSL /TLS para el servidor web.
Instalar Certbot
CentOS no tiene actualmente su propia versión de Certbot en el repositorio, por lo que debe usar el script certbot-auto:
sudo dnf install wget
sudo wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
Certbot-auto instala automáticamente todas las dependencias y actualiza el código del cliente.
Los complementos de DNS de Certbot que se pueden usar para automatizar la obtención de un certificado comodín del servidor ACMEv2 de Let's Encrypt aún no están disponibles para CentOS 8. Puede usar estos complementos iniciando Certbot en Docker. Para obtener más información, lea la documentación oficial.
Obtenga un certificado SSL
El primer paso para utilizar Let's Encrypt para obtener un certificado SSL es instalar el software Certbot en su servidor.
sudo./certbot-auto --apache
Advertencia, puede encontrar un error similar al siguiente:
Error while running apachectl configtest.
AH00526: Syntax error on line 85 of /etc/httpd/conf.d/ssl.conf:
SSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty
The apache plugin is not working; there may be problems with your existing configuration.
The error was: MisconfigurationError("Error while running apachectl configtest.\n\nAH00526: Syntax error on line 85 of /etc/httpd/conf.d/ssl.conf:\nSSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty\n",)
En este caso, deberá reiniciar Apache:
sudo systemctl restart httpd
Luego repita el comando anterior para configurar Certbot y obtener el certificado SSL:
sudo./certbot-auto --apache
De lo contrario, podría obtener el certificado y luego configurar Apache manualmente con el siguiente comando:
sudo./certbot-auto --apache certonly
Certbot ya está listo para usarse.
Para obtener más información sobre cómo utilizar Certbot, lea la documentación oficial de Certbot.
Renovación Automática
Los paquetes de Certbot vienen con un trabajo cron que renovará automáticamente sus certificados antes de que caduquen. Como los certificados Let's Encrypt duran 90 días, se recomienda encarecidamente aprovechar esta función. Puede verificar la renovación automática de certificados ejecutando este comando:
sudo./certbot-auto renew --dry-run
Si funciona bien, puede configurar la renovación automática agregando un trabajo cron o un temporizador systemd que ejecute este comando:
./certbot-auto renew
Conclusión
En esta guía hemos visto cómo instalar Let's Encrypt usando Certbot en CentOS 8 Linux.