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.