En este artículo, exploraremos el proceso de instalación y configuración. Certbot En un servidor Linux. Lo explicaremos en detalle. Cómo obtener un certificado SSL/TLS de Let's Encrypt Para su dominio. También describiremos cómo instalarlo en un servidor web (como Nginx o Apache) y configurar la renovación automática de certificados para garantizar una conexión segura y continua con su recurso web.
Certbot es una herramienta gratuita y de código abierto diseñada para la adquisición y renovación automática de Certificados SSL/TLSDesempeña un papel crucial en la seguridad de la conexión entre el servidor y el cliente, protegiendo los datos del acceso no autorizado. Certbot simplifica el proceso de instalación y renovación de un certificado SSL. El certificado no solo mejora la seguridad, sino que también aumenta la confianza del usuario en su recurso web, mejorando así la reputación del sitio web y su posicionamiento en buscadores.
Instalación de Certbot
Certbot está incluido en la mayoría de las distribuciones de forma predeterminada, por lo que para instalarlo en Debian / Ubuntu sistemas, solo necesitas actualizar la lista de paquetes:
apt update
Luego, inicie el proceso de instalación:
apt install certbot
Certbot admite complementos que facilitan la configuración del certificado para un servidor web. Para instalar estos complementos, utilice el comando correspondiente:
apt install certbot python3-certbot-nginx # for Nginx
apt install certbot python3-certbot-apache # for Apache
El proceso de instalación de Red Hat sistemas (como RHEL, CentOS, Fedora) es ligeramente diferente. Inicialmente, debe agregar el repositorio EPEL:
yum install epel-release
Luego instala la herramienta:
yum install certbot
De manera similar, existe una opción para seleccionar un complemento para un servidor web específico:
yum install python3-certbot-nginx # for Nginx
yum install python3-certbot-apache # for Apache
Después de la instalación, puede proceder inmediatamente a obtener el certificado.
Obtener un certificado SSL
En esta sección, analizaremos el proceso para obtener un certificado independientemente de un servidor web específico, y luego describiremos el proceso de instalación del certificado para Nginx y Apache. Sin embargo, es fundamental comprender primero la sintaxis y la funcionalidad del programa. Su aspecto es el siguiente:
certbot command option -d domain
Los comandos principales incluyen:
certbot certonly - Recupera el certificado pero no lo instala.certbot certificates - Este comando muestra una lista de todos los certificados instalados.certbot renew - Amplía el certificado existente.certbot revoke - Revoca el certificado existente.certbot delete - Elimina el certificado existente.
Las opciones más utilizadas son:
--nginx - Utiliza scripts de configuración de Nginx para la verificación del dominio.--apache - Utiliza scripts de configuración de Apache para la verificación del dominio.-d - Una lista de dominios para los que se solicita el certificado.--standalone - Utiliza el modo independiente para la verificación del dominio.--manual - Realiza la verificación manual del dominio.
Este es solo un ejemplo de los comandos y opciones más frecuentes. Puede consultar la lista completa de funciones del programa en la sección de ayuda:
certbot –help
Ahora procedemos a obtener el certificado. Por ejemplo, obtendremos un certificado para un servidores virtuales para un dominio de tercer nivel gratuito como yourusername.pserver.space
Primero debes ingresar el comando:
certbot certonly
En respuesta, la utilidad le pedirá que elija un método para verificar la propiedad del dominio:
La primera opción es conveniente si no tiene un servidor web configurado o no desea modificar uno existente. Este método crea un servidor web temporal para confirmar sus derechos sobre el dominio. Es ideal para una configuración sencilla y rápida. Al elegir este método, es importante mantener libre el puerto 80.
La segunda opción es preferible si ya tiene un servidor web en funcionamiento y desea usarlo para verificar el derecho al dominio. Certbot guarda archivos especiales en una carpeta de su servidor, que luego son revisados por el centro de certificación.
Seleccionamos la primera opción y hacemos clic en Siguiente. En este paso, deberás:
- Introduzca una dirección de correo electrónico;
- Aceptar los términos del servicio;
- Aceptar o rechazar recibir correos electrónicos en nombre de la empresa y sus socios;
- Especifique el nombre de dominio para el que se emite el certificado.
Luego de completar el proceso de emisión del certificado con la herramienta Certbot, esta le indicará la ruta al directorio donde se almacenan el certificado emitido y los datos de su cuenta:
Ahora solo falta vincular el certificado obtenido al servicio requerido.
Instalación del certificado para Nginx o Apache
Esta sección supone que se cumplen ciertas condiciones fundamentales:
- Ya ha instalado y configurado un servidor web, ya sea Nginx o Apache. Debe ser accesible desde internet a través del nombre de dominio para el que desea obtener el certificado.
- Durante la instalación de la herramienta, también instaló un complemento para Nginx o Apache usando el comando apropiado;
- El firewall permite conexiones en los puertos 80 y 443. Si estos puertos están cerrados, el servicio no estará disponible para las conexiones entrantes. Para más detalles sobre el funcionamiento del firewall, lo explicamos en el artículo sobre... Configurar un firewall en Linux.
Una vez cumplidas todas las condiciones, puede proceder directamente a la emisión del certificado. Consideraremos como ejemplo el proceso de obtención de un certificado SSL en un servidor usando Nginx. Sin embargo, si utiliza un servidor web Apache, el proceso es idéntico.
Para obtener el certificado, es necesario ingresar el comando:
certbot --nginx # for Nginx
certbot --apache # for Apache
En respuesta, la herramienta solicitará: una dirección de correo electrónico, consentimiento a los términos de uso del servicio Let's Encrypt y permiso para enviar correos electrónicos en nombre del servicio y sus socios.
A continuación, deberá especificar el nombre de dominio para el que se emite el certificado. Certbot puede determinar automáticamente el dominio si se especificó en el nombre del servidor campo para Nginx configuración o Nombre del servidor y ServerAlias para preguntas de APACHESi no se especifica, el programa le notificará y le pedirá que introduzca el nombre de dominio manualmente. A continuación, la utilidad le preguntará si desea habilitar la redirección de solicitudes del protocolo HTTP al HTTPS. Para configurar la redirección automática, debe elegir la segunda opción:
Después de un tiempo, Certbot le informará de la adquisición exitosa del certificado para el dominio especificado. A partir de ese momento, todas las conexiones entrantes se redirigirán del puerto 80 al 443. La herramienta mostrará los directorios donde se encuentran todos los datos del certificado y los detalles de la cuenta de Let's Encrypt:
El mensaje también especificará el período de validez del certificado obtenido y opciones importantes para administrar todos los certificados activos:
- ciertamenteEsta opción se utiliza para obtener o actualizar el certificado sin la configuración automática del servidor web. Certbot solo solicitará o actualizará el certificado, pero no realizará cambios automáticos en la configuración del servidor. Anteriormente, usábamos esta opción para obtener un certificado sin estar vinculado a un servidor web.
- renovar Se utiliza para la renovación automática de todos los certificados obtenidos a través de Certbot y que estén dentro de su periodo de validez. El programa revisará todos los certificados y, si alguno caduca en un plazo de 30 días o menos, se renovará automáticamente.
A continuación en las instrucciones, discutiremos cómo configurar la renovación automática de certificados sin intervención del usuario cada tres meses.
Renovación automática de certificados en Certbot
Para Debian/Ubuntu
Al utilizar estos sistemas operativos, Certbot añade automáticamente un script a la lista de tareas para la renovación automática de los certificados instalados. Puede comprobar el funcionamiento del script con el siguiente comando:
systemctl status certbot.timer
La respuesta mostrará el estado del servicio, así como el directorio que contiene el archivo de configuración. Puede abrirlo con cualquier editor de texto. Si no tiene experiencia con editores de texto en Linux, le recomendamos familiarizarse con nuestra descripción general Una de las soluciones más populares. En este caso, usaremos nano:
nano /lib/systemd/system/certbot.timer
Se resaltan todos los parámetros importantes:
- El horario indica que el servicio funcionará dos veces al día a las 00:00 y a las 12:00;
- Un segundo valor indica un retraso aleatorio en segundos que se añadirá al inicio del temporizador. En este caso, son 43,200 segundos (12 horas), lo que hace que el inicio sea más aleatorio y distribuye la carga.
- Este parámetro garantiza que si el temporizador debía ejecutarse durante un apagado del sistema, se activará inmediatamente al iniciarse.
También puede ejecutar una comprobación forzada de renovación del certificado con el comando:
certbot renew --dry-run
Con este comando, los certificados no se actualizarán. En su lugar, la herramienta realizará acciones similares a la obtención de un certificado al expirar. De esta forma, puede garantizar la funcionalidad del servicio en cuanto a la renovación automática.
Para CentOS, Fedora y otros
El proceso para habilitar actualizaciones automáticas en los sistemas de la familia Red Hat difiere ligeramente. A diferencia de Debian/Ubuntu, para CentOS y otros sistemas, es necesario agregar manualmente una tarea al programador. Para ello, usaremos el cron herramienta:
crontab -e
Luego, en el archivo que se abre, agrega la siguiente línea:
0 12 * * * /usr/bin/certbot renew --quiet
Analicemos los argumentos principales del comando:
- La hora de ejecución. En este caso, el comando se ejecutará automáticamente a las 12:00 todos los días.
- El comando para renovar certificados SSL/TLS usando Certbot;
- La --tranquilo La bandera suprime la salida, haciendo que el proceso sea más oculto y menos intrusivo en los registros del sistema o en la pantalla.
Después de agregar el comando, debe guardar los cambios en el archivo.
Al igual que con Debian/Ubuntu, también puede iniciar una verificación forzada de renovaciones de certificados:
certbot renew --dry-run
El resultado de una ejecución exitosa del comando se ve así:
Conclusión
Hemos explorado el proceso completo de instalación y configuración de Certbot en un servidor Linux. Siguiendo las instrucciones, podrá obtener un certificado SSL/TLS de Let's Encrypt, instalarlo en su servidor web y configurar la renovación automática para garantizar una protección continua y una mayor confianza en su recurso web. Con Certbot, puede crear fácilmente un entorno confiable y seguro para los usuarios.