GNU/Linux >> Tutoriales Linux >  >> Debian

Genere certificados SSL con LetsEncrypt en Debian Linux

Introducción

En caso de que aún no te hayas dado cuenta, el cifrado es importante. Para la web, eso significa usar certificados SSL para proteger el tráfico web. Recientemente, Mozilla y Google han ido tan lejos como para marcar los sitios sin certificados SSL como inseguros en Firefox y Chrome.

Con el fin de actualizar la Web con el cifrado, la Fundación Linux junto con la Fundación Frontera Electrónica y muchos otros crearon LetsEncrypt. LetsEncrypt es un proyecto diseñado para permitir a los usuarios acceder a certificados SSL gratuitos para sus sitios web. Hasta la fecha, LetsEncrypt ha emitido millones de certificados y es un éxito rotundo.

Usar LetsEncrypt es fácil en Debian, especialmente cuando se usa la utilidad Certbot de EFF.

Sistema operativo

  • SO :Debian Linux
  • Versión :9 (Estiramiento)

Instalación para Apache

Certbot tiene un instalador especializado para el servidor Apache. Debian tiene este instalador disponible en sus repositorios.

# apt install python-certbot-apache

El paquete proporciona el certbot dominio. El complemento Apache interactúa con el servidor Apache para descubrir información sobre sus configuraciones y los dominios para los que está generando certificados. Como resultado, generar sus certificados requiere solo un breve comando.

# certbot --apache

Certbot generará sus certificados y configurará Apache para usarlos.

Instalación para Nginx

Nginx requiere un poco más de configuración manual. Por otra parte, si usa Nginx, probablemente esté acostumbrado a las configuraciones manuales. En cualquier caso, Certbot todavía está disponible para su descarga a través de los repositorios de Debian.

# apt install certbot

El complemento Certbot todavía está en alfa, por lo que no se recomienda usarlo. Certbot tiene otra utilidad llamada "webroot" que facilita la instalación y el mantenimiento de certificados. Para obtener un certificado, ejecute el siguiente comando, especificando su director raíz web y los dominios que desea cubrir con el certificado.

# certbot certonly --webroot -w /var/www/site1 -d site1.com -d www.site1.com -w /var/www/site2 -d site2.com -d www.site2.com

Puede usar un certificado para varios dominios con un solo comando.

Nginx no reconocerá los certificados hasta que los agregue a su configuración. Todos los certificados SSL deben estar incluidos en el server bloque para su respectivo sitio web. También debe especificar dentro de ese bloque que el servidor debe escuchar en el puerto 443 y usa SSL.

server {
	listen 443 default ssl;
	# Your
	# Other

	ssl_certificate /path/to/cert/fullchain.pem
	ssl_certificate_key /path/to/cert/privkey.pem

	# Config
	# Lines
}

Guarde su configuración y reinicie Nginx para que los cambios surtan efecto.

# systemctl restart nginx

Renovación automática con Cron

Ya sea que esté utilizando Apache o Nginx, deberá renovar sus certificados. Recordar hacerlo puede ser un dolor, y definitivamente no quieres que caduquen. La mejor manera de manejar la renovación de sus certificados es crear un trabajo cron que se ejecute dos veces al día. Se recomiendan renovaciones dos veces al día porque protegen contra la caducidad de los certificados debido a la revocación, lo que puede ocurrir de vez en cuando. Sin embargo, para ser claros, en realidad no se renuevan cada vez. La empresa de servicios públicos verifica si los certificados están desactualizados o lo estarán dentro de los treinta días. Solo los renovará si cumplen con los criterios.

Primero, cree un script simple que ejecute la utilidad de renovación de Certbot. Probablemente sea una buena idea colocarlo en el directorio de inicio de su usuario o en un directorio de secuencias de comandos para que no se sirva.

#! /bin/bash

certbot renew -q

No olvide hacer que el script también sea ejecutable.

$ chmod +x renew-certs.sh

Ahora, puede agregar el script como un trabajo cron. Abre tu crontab y agrega el script.

# crontab -e
* 3,15 * * * /home/user/renew-certs.sh

Una vez que salga, el script debería ejecutarse todos los días a las 3 a. m. y a las 3 p. m. por el reloj del servidor.

Pensamientos finales

Cifrar su servidor web protege tanto a sus invitados como a usted mismo. El cifrado también seguirá desempeñando un papel en los sitios que se muestran en los navegadores, y no es exagerado suponer que también desempeñará un papel en el SEO. Lo mires como lo mires, cifrar tu servidor web es una buena idea, y LetsEncrypt es la forma más fácil de hacerlo.


Debian
  1. Cómo reemplazar Systemd con SysV Init en Debian Linux

  2. Primeros pasos con Jekyll en Debian 9 Stretch Linux

  3. Cómo cifrar el directorio con EncFS en Debian 9 Stretch Linux

  4. Cómo administrar los certificados Lets Encrypt SSL/TLS con certbot

  5. Asegure Apache2 con Let's Encrypt SSL en Debian 10/11

Cómo instalar Etherpad con Nginx y SSL en Debian 11

MX Linux 19 lanzado con Debian 10.1 'Buster' y otras mejoras

Cómo generar una solicitud de firma de certificado SSL/TLS (CSR) en Debian 10

Cómo cifrar particiones de Linux con VeraCrypt en Debian 10

Cómo renovar automáticamente los certificados Let's Encrypt SSL

Certificados maestros autofirmados en Windows y Linux