Cómo instalar el certificado SSL Let’s Encrypt para proteger Apache en RHEL/CentOS 7/6

Cómo instalar el certificado SSL Let’s Encrypt para proteger Apache en RHEL/CentOS 7/6

Ampliando el último tutorial de Let’s Encrypt sobre certificados gratuitos SSL/TLS, en este artículo vamos a demostrar cómo obtener e instalar certificados SSL/TLS gratuitos emitidos por Let’s Encrypt Certificate Authority. para Servidor web Apache. en CentOS/RHEL 7/6. y distribuciones de Fedora también.

Si está buscando instalar Let’s Encrypt para Apache en Debian y Ubuntu, siga esta guía a continuación:

Configure Let’s Encrypt para asegurar Apache en Debian y Ubuntu

Prueba del entorno de muestra  Instalar Permite cifrar para Apache en CentOS y RHEL  Instalar Lets Encrypt para Apache en CentOS y RHEL Instalar Lets Encrypt for Apache en CentOS y RHEL Requisitos

  1. Un nombre de dominio registrado con registros A válidos para apuntar a la IP pública de su servidor Dirección.
  2. Servidor Apache instalado con el módulo SSL habilitado y Alojamiento virtual habilitado en caso de que esté hospedando varios dominios o subdominios.

Paso 1: Instale el servidor web Apache

1.. Si aún no está instalado, el demonio httpd se puede instalar emitiendo el siguiente comando:

# yum install httpd

2.. Para que Let’s encrypt software funcione con Apache, asegúrese de que el módulo SSL/TLS esté instalado emitiendo el siguiente comando:

# yum-y install mod_ssl

3.. Finalmente, inicie el servidor Apache con el siguiente comando:

# systemctl start httpd.service [En RHEL/CentOS 7] # service httpd start [En RHEL/CentOS 6]

Paso 2: Instale el certificado SSL Let’s Encrypt

freestar.config.enabled_slots.push

4.. El método más simple de instalar el cliente Let’s Encrypt. es clonando el repositorio github en su sistema de archivos. Para instalar git en su sistema, debe habilitar los repositorios de Epel con el siguiente comando.

# yum install epel-release

5.. Una vez que se agregan los repositorios de Epel en su sistema, continúe y instale el cliente git ejecutando el siguiente comando:

# yum install git

6.. Ahora, una vez que haya instalado todas las dependencias necesarias para tratar con Let’s Encrypt, vaya a/usr/local/y comience a extraer el cliente Let’s Encrypt de su repositorio oficial de github con el siguiente comando:

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

Paso 3: Obtenga un certificado SSL Let’s Encrypt gratuito para Apache

7.. El proceso de obtención de un certificado Let’s Encrypt gratuito para Apache está automatizado para CentOS/RHEL. gracias al complemento de apache.

Ejecutemos el comando de script Let’s Encrypt. para obtener un certificado SSL. Vaya al directorio de instalación de Let’s Encrypt desde/usr/local/letsencrypt y ejecute el comando letsencrypt-auto proporcionando la opción–apache y la marca-d para cada subdominio que necesite un certificado.

# cd/usr/local/letsencrypt # ./letsencrypt-auto–apache-d your_domain.tld  Crear permite cifrar certificado SSL para Apache Create Lets Encrypt SSL Certificate for Apache Crear certificado SSL de Lets Encrypt para Apache

8.. Proporcione la dirección de correo electrónico que Let’s Encrypt utilizará para recuperar su archivo. st o para avisos urgentes y presione Enter. para continuar.

 Agregar correo electrónico Dirección para Lets Encrypt  Agregar dirección de correo electrónico para Lets Encrypt Agregar dirección de correo electrónico para Lets-Encrypt

9.. Acepte los términos de la licencia presionando la tecla Enter.

 De acuerdo Permite cifrar la licencia  Acepto Permite cifrar la licencia Aceptar Permite cifrar la licencia

10.. En CentOS/RHEL. de forma predeterminada, el servidor Apache no utiliza el concepto de separar directorios para hosts habilitados de hosts disponibles (inactivos) como Debian. distribución basada en.

Además, el alojamiento virtual está deshabilitado de forma predeterminada. La declaración de Apache que especifica el nombre del servidor ( ServerName. no está presente en el archivo de configuración SSL.

Para activar esta directiva, Let’s Encrypt le pedirá que seleccione un host virtual . Debido a que no encuentra ningún Vhost disponible, seleccione el archivo ssl.conf para que el cliente Let’s Encrypt lo modifique automáticamente y presione Enter. para continuar.

 Directiva Active VirtualHost y seleccione Mod_SSL  Directiva Active VirtualHost y seleccione Mod_SSL Directiva Active VirtualHost y seleccione Mod_SSL

11.. A continuación, elija el método Fácil. para solicitudes HTTP. y presione Intro. para avanzar.

Permitir solicitudes HTTP fáciles Permitir solicitudes HTTP fáciles Permitir solicitudes HTTP fáciles

12.. Finalmente, si todo salió bien, debería mostrarse un mensaje de felicitación en la pantalla. Presione Enter. para liberar el mensaje.

 Permite cifrar habilitado en el dominio  Permite cifrar habilitado en el dominio Permite cifrar habilitado en el dominio

¡Eso es! Ha emitido correctamente un certificado SSL/TLS. para su dominio. Ahora puede comenzar a navegar por su sitio web usando el protocolo HTTPS.

Paso 4: Pruebe el cifrado de Let’s Encrypt gratuito en el dominio

13. Para probar la rectitud del protocolo de enlace SSL/TLS de su dominio, visite el enlace a continuación y pruebe su certificado en su dominio.

https://www.ssllabs.com/ssltest/analyze.html Verificar permite cifrar el certificado en el dominio  Verify Lets-Encrypt Certificate on Domain Verificar permite cifrar Certificado de dominio

14.. Si recibe una serie de informes sobre la vulnerabilidad de su dominio en las pruebas realizadas, entonces necesita corregir esos agujeros de seguridad con urgencia.

Un resumen general La clasificación de la clase C. hace que su dominio sea muy inseguro. Para solucionar estos problemas de seguridad, abra el archivo de configuración Apache SSL y realice los siguientes cambios:

# vi/etc/httpd/conf.d/ssl.conf

Busque la línea con la declaración SSLProtocol y agregue-SSLv3 en el final de la línea.

 Corregir Apache SSL Configuración  Corregir configuración SSL de Apache Corregir la configuración de Apache SSL

Profundice en el archivo, busque y comente la línea con SSLCipherSuite colocando un # delante y agregue el siguiente contenido debajo de esta línea:

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES256-GCM-SHA384: DHE-RSA-AES128-GCM-SHA256: AES128-GCM-SHA256: kEDH + AESGCM: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA: ECDHE-ECDSA-AES128-SHA-A384: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA: ECDHE-ECDSA-AES256-SHA: DHE-RSA-AES128-SHA256: DHE-RSA-AES128-SHA: DHE-DSS-AES128-SHA256 RSA-AES256-SHA256: DHE-DSS-AES256-SHA: DHE-RSA-AES256-SHA: AES128-GCM-SHA256: AES256-GCM-SHA384: AES128-SHA256: AES256-SHA256: AES128-SHA: AES AES: CAMELLIA: DES-CBC3-SHA:! ANULL:! ENULL:! EXPORT:! DES:! RC4:! MD5:! PSK :! aECDH:! EDH-DSS-DES-CBC3-SHA:! EDH-RSA-DES-CBC3-SHA:! KRB5-DES-CBC3-SHA SSLHonorCipherOrder en SSLOptions + StrictRequire  Configurar configuración SSL  Configurar configuración SSL Configurar la configuración SSL

15.. Una vez que haya realizado todos los cambios anteriores, guarde y cierre el archivo, luego reinicie el demonio Apache para aplicar los cambios.

# systemctl restart httpd.service [En RHEL/CentOS 7] # service httpd restart [En RHEL/CentOS 6]

16.. Ahora, prueba el estado del cifrado de tu dominio nuevamente, visitando el mismo enlace que sobre. Para realizar nuevas pruebas, presione el enlace Borrar caché del sitio web.

https://www.ssllabs.com/ssltest/analyze.html La prueba permite cifrar el certificado SSL en el sitio web  Prueba permite cifrar el certificado SSL en el sitio web La prueba permite cifrar el certificado SSL en el sitio web

Ahora debería obtener una calificación general A. lo que significa que su dominio está altamente protegido.

Paso 4: Renovación automática de certificados Let’s Encrypt en Apache

17.. Esta versión beta del software Let’s Encrypt publica certificados con fecha de vencimiento después de 90. días. Entonces, para renovar el certificado SSL, debe ejecutar el comando letsencrypt-auto nuevamente antes de la fecha de vencimiento, con las mismas opciones y banderas que se usaron para obtener el certificado inicial.

Un ejemplo de cómo renovar manualmente el certificado se presenta a continuación.

# cd/usr/local/letsencrypt # ./letsencrypt-auto certonly–apache–renew-by-default-d your_domain.tld

18.. Para automatizar este proceso, cree el siguiente script bash proporcionado por github erikaheidi, en el directorio/usr/local/bin/con el siguiente contenido. (el script está ligeramente modificado para reflejar nuestro directorio de instalación de letsencrypt).

# vi/usr/local/bin/le-renew-centos

Agregue el siguiente contenido al archivo le-renew-centos:

!/bin/bash dominio = $ 1 le_path = ‘/usr/local/letsencrypt’ le_conf = ‘/etc/letsencrypt’ exp_limit = 30; get_domain_list () awk ‘print substr ($ 0, 1, length-1)’) fi echo $ domains; si [-z “$ dominio”]; luego repita “[ERROR] debe proporcionar el nombre de dominio para la renovación del certificado”. salida 1; fi cert_file = “/etc/letsencrypt/live/$ dominio/fullchain.pem” if [!-f $ archivo_cert]; luego repita “[ERROR] archivo de certificado no encontrado para el dominio $ dominio”. salida 1; fi exp = $ (date-d “` openssl x509-in $ cert_file-text-noout | grep “Not After” | cut-c 25-`” +% s) datenow = $ (date-d “ahora” +% s) days_exp = $ (echo \ ($ exp-$ datenow \)/86400 | bc) echo “Comprobando la fecha de vencimiento para $ dominio …” if [“$ days_exp”-gt “$ exp_limit”]; luego repita “El certificado está actualizado, no es necesario renovarlo (quedan $ days_exp days)”. salir 0; else echo “El certificado para $ dominio está a punto de caducar pronto. Iniciando solicitud de renovación …” domain_list = $ (get_domain_list $ domain) “$ le_path”/letsencrypt-auto certonly–apache–renew-by-default-dominios “$ lista_de_dominios” echo “Reiniciando Apache …”/usr/bin/systemctl restart httpd echo “El proceso de renovación finalizó para el dominio $ dominio” salida 0; fi

​​ 19.. Otorgue permisos de ejecución para el script, instale el paquete bc. y ejecute el script para probarlo. Utilice su nombre de dominio como parámetro posicional para el script. Emita los siguientes comandos para realizar este paso:

# yum install bc # chmod + x/usr/local/bin/le-renew-centos #/usr/local/bin/le-renew-centos your_domain.tld

20.. Finalmente, usando la programación de Linux, agregue un nuevo trabajo cron para ejecutar el script cada dos meses, asegurándose de que su certificado se actualice antes de la fecha de vencimiento.

# crontab-e

Agregue la siguiente línea al final del archivo.