Let’s Encrypt tu Apache servidor web en CentOS 7

Introducción

Era septiembre cuando, con un publicar en su blogGoogle anunció que a partir de Chrome 56, su navegador marcará las páginas no seguras que contienen campos de entrada de contraseña y tarjeta de crédito como No es seguro en la barra de URL.
Es importante tener en cuenta que estamos hablando de todas las páginas HTTP recopilar datos “críticos” de los usuarios.
Este movimiento es parte de un plan a largo plazo para marcar todos los sitios HTTP como no seguros. Entonces, si posee (o administra) un servidor web, debe hacer el movimiento correcto: este artículo explicará exactamente lo que eso significa.

¿Por qué HTTPS?

La primera pregunta es: ¿por qué Google está haciendo esto? ¿Cuáles son las preocupaciones sobre HTTP y por qué, hoy en día, es una buena opción para proteger las conexiones?
Por supuesto, todo el mundo sabe que seguro es mejor que inseguro; pero en este caso, el gran problema de HTTP es que carece de un sistema de protección de las comunicaciones entre clientes y servidores. Esto expone los datos a diferentes tipos de ataques, por ejemplo, el “hombre en el medio” (MIM), en el que el atacante intercepta sus datos. Si está utilizando algún sistema de transacciones con su banco, utilizando información de tarjetas de crédito o simplemente ingresando una contraseña para iniciar sesión en un sitio web, esto puede volverse muy peligroso.
Esta es la razón por la que existe HTTPS (HTTP sobre TLS o HTTP sobre SSL o HTTP seguro).
Si está en Unixmen, probablemente sepa lo que esto significa: SSL/TLS garantiza conexiones encriptadas.
Entonces, si su trabajo es mantener un servidor web en funcionamiento, debe cambiar a HTTPS.

Primeros pasos con HTTPS

En primer lugar, para habilitar HTTPS en su sitio, necesita un certificado. Estos se pueden adquirir de una Autoridad de Certificación (CA). A continuación, querrá seguir nuestro tutorial, donde hablaremos sobre Let’s Encrypt. Configuraremos en un Apache servidor web que se ejecuta en CentOS 7.
Para obtenerlo, es necesario demostrar control sobre el dominio a asegurar. Puede realizar esta tarea a través de un software que utiliza ACME.
Supondremos que tiene acceso shell a su servidor; es decir, que puedes conectarte a través de SSH.

Usando Certbot

Certbot es un cliente ACME poderoso, pero fácil de usar, que la EFF proporciona.
En CentOS 7, puede encontrar Certbot en el repositorio de EPEL; si lo habilita, simplemente instale lo que necesita:

# yum install python-certbot-apache

tiene un solido Apache complemento, y automatiza casi todos los pasajes requeridos. Solo da el comando:

$ certbot --apache

Después de eso, verá una guía para personalizar sus opciones, así:

Enter el dominio que desea proteger; luego, Certbot le pedirá que ingrese su dirección de correo electrónico.


A continuación, elegirá el archivo Virtual Host, siendo el predeterminado ssh.conf.

Después de eso, puede decidir si habilitar ambos
http y https
acceder o redirigir a https. La opción segura es la segunda (https). Al final del procedimiento, Certbot mostrará un mensaje que contiene información de configuración.

Editar la configuración SSL de CentOS

Si desea agregar más seguridad, debe realizar algunos cambios.
Primero, edite el archivo de host virtual que especificó durante la configuración a través de Certbot. Si usó el predeterminado, el archivo debe ser

/etc/httpd/conf.d/ssl.conf

.
Allí, para asegurar Apache SSL, podemos seguir esta recomendaciónque, para nuestro examplees:

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off 
SSLUseStapling on 
SSLStaplingCache "shmcb:logs/stapling-cache(150000)" 
# Requires Apache >= 2.4.11
SSLSessionTickets Off

Por supuesto, recuerda que puedes tener problemas de compatibilidad con clientes antiguos, por lo que depende de ti cambiar las líneas anteriores como se sugiere, o elegir otra ruta.
Cuando haya terminado, guarde y close el archivo.

Probando y ejecutando su nueva configuración

Esta es la tarea más fácil. Compruebe si hay errores de sintaxis, ejecutando:

# apachectl configtest

Si, como salida, tiene un

Sintaxis Aceptar

significa que no ha cometido errores al editar el archivo conf.
Entonces, es hora de reiniciar Apache:

# systemctl restart httpd

Ahora, si todo salió bien, tu servidor web comenzará a servir páginas a través de conexiones SSL.

Más sobre certificados

Let’s Encrypt los certificados duran 90 días, por lo que depende de usted renovarlos. Con Certbot, puede probar el sistema de renovación automática con este comando:

certbot renew --dry-run

Si funciona, puede agregar un cron o sistema trabajo para gestionar la renovación automática.

Conclusión

Si se encuentra en este punto, su servidor web debería estar sirviendo a los clientes a través de conexiones seguras.
Y por supuesto, Chrome ya no marcará su sitio como No seguro.

Related Posts