LetsEncrypt es un servicio que proporciona certificados SSL/TLS gratuitos a los usuarios. Certbot es un cliente que hace que esto sea fácil de lograr y de automatizar. Además, tiene plugins para Apache y Nginx que hacen aún más fácil la automatización de la generación de certificados.
Las instrucciones de instalación para la mayoría de las distribuciones de Linux se pueden encontrar en el sitio web de Certbot.
Una vez que los paquetes se instalan, estás listo para generar un nuevo certificado.
Apache
Después de instalar Certbot y el plugin de Apache, la generación del certificado se realiza con el siguiente comando.
certbot certonly --apache --noninteractive --agree-tos --email YOUR_EMAIL -d NOMBRE_DE_DOMINIO
Actualice las secciones «SSLCertificateFile» y «SSLCertificateKeyFile», y luego reinicie el servicio.
Añade un trabajo a cron para que el certificado se renueve automáticamente.
echo "0 0 * * * root certbot renew --quiet --no-self-upgrade --post-hook $0027systemctl reload apache2$0027" | sudo tee -a /etc/cron.d/renew_certbot
HAProxy
HAProxy no tiene actualmente un plugin de Certbot. Para evitarlo, ejecuta Certbot en modo autónomo y el tráfico del proxy a través de su red.
Habilita el frontend y el backend en la configuración anterior, y luego ejecuta Certbot.
certbot certonly --standalone --preferred-challenges http-01 --http-01-port 8888 --noninteractive --agree-tos --email YOUR_EMAIL -d DOMAIN_NAME
El puerto puede cambiarse a lo que quieras, pero asegúrate de que la configuración del HAProxy y tu comando Certbot coinciden.
HAProxy necesita tener el certificado y los archivos de claves concatenados en el mismo archivo para poder leerlo correctamente. Esto se puede lograr con el siguiente comando.
cat /etc/letsencrypt/live/Nombre_de_dominio/fullchain.pem /etc/letsencrypt/live/Nombre_de_dominio/privkey.pemDescomponer el bind *:443 y la sección de redireccionamiento en la configuración, luego recargar el servicio.
Renovación automática de certificados
Coloque la siguiente secuencia de comandos en /usr/local/bin/ para actualizar automáticamente su certificado SSL.
SITIO=NOMBRE_DE_DOMINIO# pasar a la correcta vamos a cifrar directorycd /etc/letsencrypt/live/$SITIO# archivos cat para hacer combinado .pem para haproxycat fullchain.pem privkey.pem > /etc/ssl/$SITIO.pem# recargar haproxyservice haproxy reloadAsegúrate de que el guión sea ejecutable.
chmod u+x /usr/local/bin/letsencrypt-renew.shAñade un trabajo a cron para que el certificado se renueve automáticamente.
@mensual /usr/bin/certbot renew --renew-hook "/usr/local/bin/letsencrypt-renew.sh"; /var/log/letsencrypt-renewal.logNginx
Después de instalar Certbot y el plugin de Nginx con sudo apt install certbot python3-certbot-nginx, genera el certificado.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email SU_EMAIL -d SU_DOMINIOAñade el parámetro --rsa-key-size 4096 si quieres una tecla de 4096 bits en su lugar.
Copie y pegue todo el archivo de configuración de muestra de Nginx desde arriba, cambiando los parámetros según su configuración y descomentando las líneas.
Añade un trabajo a cron para que el certificado se renueve automáticamente.
echo "0 0 * * * root certbot renew --quiet --no-self-upgrade --post-hook $0027systemctl reload nginx$0027" | sudo tee -a /etc/cron.d/renew_certbot