Búsqueda de sitios web

Cómo proteger Apache con el certificado SSL gratuito Let's Encrypt en Ubuntu y Debian


¿Tiene un nombre de dominio recién registrado y su servidor web opera con un Certificado SSL autofirmado emitido por usted, lo que está causando dolores de cabeza a sus clientes mientras visitan el dominio debido a los errores generados por el certificado? ¿Tiene un presupuesto limitado y no puede permitirse el lujo de comprar un certificado emitido por una CA confiable? Aquí es cuando el software Let's Encrypt entra en escena y salva el día.

Si está buscando instalar Let's Encrypt para Apache o Nginx en RHEL, CentOS, Fedora o Ubuntu y Debian, siga estas guías a continuación:

Configure Let's Encrypt para proteger Apache en RHEL y CentOS 7/6

Configure Let's Encrypt para proteger Nginx en Ubuntu y Debian

Let's Encrypt es una Autoridad de Certificación (CA) que le facilita la adquisición de certificados SSL/TLS gratuitos necesarios para su servidor se ejecute de forma segura, creando una experiencia de navegación fluida para sus usuarios, sin errores.

Entorno de muestra de prueba

Todos los pasos necesarios para generar un certificado están, en su mayoría, automatizados para el servidor web Apache. Sin embargo, a pesar de su software de servidor web, algunos pasos deben realizarse manualmente y los certificados deben instalarse manualmente, especialmente en caso de que el contenido de su sitio web sea servido por el demonio Nginx.

Este tutorial le guiará sobre cómo instalar el software Let's Encrypt en Ubuntu o Debian, generar y obtener un certificado gratuito para su dominio y cómo Puede instalar manualmente el certificado en los servidores web Apache y Nginx.

Requisitos

  1. Un nombre de dominio público registrado con registros A válidos para apuntar a la dirección IP externa de su servidor. En caso de que su servidor esté detrás de un firewall, tome las medidas necesarias para garantizar que su servidor sea accesible en todo el mundo desde Internet agregando reglas de reenvío de puertos en el lado del enrutador.
  2. Servidor web Apache instalado con módulo SSL habilitado y hosting virtual habilitado, en caso de que alojes varios dominios o subdominios.

Paso 1: instale Apache y habilite el módulo SSL

1. Si aún no tiene el servidor web Apache instalado en su máquina, ejecute el siguiente comando para instalar el demonio Apache.

sudo apt-get install apache2

2. La activación del módulo SSL para el servidor web Apache en Ubuntu o Debian es bastante sencilla. Habilite el módulo SSL y active el host virtual SSL predeterminado de Apache emitiendo los siguientes comandos:

sudo a2enmod ssl
sudo a2ensite default-ssl.conf
sudo service apache2 restart
or
sudo systemctl restart apache2.service

Los visitantes ahora pueden acceder a su nombre de dominio a través del protocolo HTTPS. Sin embargo, debido a que el certificado autofirmado de su servidor no es emitido por una autoridad certificadora confiable, se mostrará una alerta de error en sus navegadores, como se ilustra en la imagen a continuación.

https://yourdomain.com

Paso 2: Instale el cliente gratuito Let's Encrypt

3. Para instalar el software Let's Encrypt en su servidor, necesita tener el paquete git instalado en su sistema. Emita el siguiente comando para instalar el software git:

sudo apt-get -y install git

4. A continuación, elija un directorio de la jerarquía de su sistema donde desee clonar el repositorio git de Let's Encrypt. En este tutorial usaremos el directorio /usr/local/ como ruta de instalación para Let's Encrypt.

Cambie al directorio /usr/local e instale el cliente letsencrypt emitiendo los siguientes comandos:

cd /usr/local
sudo git clone https://github.com/letsencrypt/letsencrypt

Paso 4: genere un certificado SSL para Apache

5. El proceso de obtención de un Certificado SSL para Apache está automatizado gracias al complemento de Apache. Genere el certificado emitiendo el siguiente comando contra su nombre de dominio. Proporcione su nombre de dominio como parámetro para la bandera -d.

cd /usr/local/letsencrypt
sudo ./letsencrypt-auto --apache -d your_domain.tld

Por ejemplo, si necesita que el certificado funcione en varios dominios o subdominios, agréguelos todos usando el indicador -d para cada registro DNS válido adicional después del nombre de dominio base.

sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld 

6. Acepte la licencia, ingrese una dirección de correo electrónico para la recuperación y elija si los clientes pueden navegar por su dominio utilizando ambos protocolos HTTP (seguro e inseguro) o redirigir todas las solicitudes no seguras a HTTPS.

7. Una vez que el proceso de instalación finaliza exitosamente, se muestra un mensaje de felicitación en su consola informándole sobre la fecha de vencimiento y cómo puede probar la configuración como se ilustra en las capturas de pantalla a continuación.

Ahora debería poder encontrar los archivos de su certificado en el directorio /etc/letsencrypt/live con una lista de directorio simple.

sudo ls /etc/letsencrypt/live

8. Finalmente, para verificar el estado de su Certificado SSL visite el siguiente enlace. Reemplace el nombre de dominio en consecuencia.

https://www.ssllabs.com/ssltest/analyze.html?d=your_domain.tld&latest

Además, los visitantes ahora pueden acceder a su nombre de dominio utilizando el protocolo HTTPS sin que aparezca ningún error en sus navegadores web.

Paso 4: La renovación automática permite cifrar certificados

9. De forma predeterminada, los certificados emitidos por la autoridad Let's Encrypt son válidos durante 90 días. Para renovar el certificado antes de la fecha de vencimiento, debe ejecutar manualmente el cliente nuevamente usando los indicadores y parámetros exactos que antes.

sudo ./letsencrypt-auto --apache -d your_domain.tld

O en caso de múltiples subdominios:

sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld

10. El proceso de renovación del certificado se puede automatizar para que se ejecute en menos de 30 días antes de la fecha de vencimiento utilizando el demonio cron programado de Linux.

sudo crontab -e

Agregue el siguiente comando al final del archivo crontab usando solo una línea:

0 1 1 */2 * cd /usr/local/letsencrypt && ./letsencrypt-auto certonly --apache --renew-by-default --apache -d domain.tld >> /var/log/domain.tld-renew.log 2>&1

11. Los detalles sobre su archivo de configuración de dominio de renovación para el software Let's Encrypt se pueden encontrar en el directorio /etc/letsencrypt/renewal/.

cat /etc/letsencrypt/renewal/caeszar.tk.conf

También debe consultar el archivo /etc/letsencrypt/options-ssl-apache.conf para ver el nuevo archivo de configuración SSL para el servidor web Apache.

12. Además, el complemento Let's encrypt apache modifica algunos archivos en la configuración de su servidor web. Para comprobar qué archivos se han modificado, enumere el contenido del directorio /etc/apache2/sites-enabled.

ls /etc/apache2/sites-enabled/
sudo cat /etc/apache2/sites-enabled/000-default-le-ssl.conf

¡Eso es todo por ahora! En la próxima serie de tutoriales se analizará cómo puede obtener e instalar un certificado Let's Encrypt para el servidor web Nginx en Ubuntu y Debian< y en CentOS también.