Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=559a0436-f28f-4d70-a8dd-a9094f5db01a

HTTPS en todas partes y el fin de los sitios no seguros - Instala un certificado en tu servidor Web

Icono de advertencia ATENCIÓN: este contenido tiene más de 2 años de antigüedad y, debido a su temática, podría contener información desactualizada o inexacta en la actualidad.


Foto por Jon Moore en Unsplash

La web es insegura por naturaleza. Cuando se diseñaron los protocolos en los que está basada (TCP/IP) no se tuvieron en cuenta muchos de los problemas que tiene la Internet moderna. Y el protocolo HTTP, para transferir páginas web, no añadió nada al respecto tampoco hasta mucho después, con la introducción del protocolo HTTPS (la "ese" es de "Seguro") allá por 1994 por la empresa Netscape. El protocolo HTTPS original utilizaba SSL (Secure Sockets Layer) como protocolo seguro de intercambio de claves y cifrado, pero en la actualidad está obsoleto y se emplea TLS (Transport Layer Security, que va por su versión 1.3). El estándar de HTTP sobre TLS, en realidad, no se configuró hasta mayo del año 2000.

Tradicionalmente, los navegadores le han indicado a sus usuarios que se estaban conectando a un sitio seguro utilizando un iconito, generalmente uno con un candado. No deja de ser gracioso, pues no hay cosa más insegura que un candado, pero se ve que faltó imaginación 😜

Según el navegador el aspecto cambia un poco, pero todos muestran el proverbial "candadito" al lado de la dirección:

Es decir, lo importante aquí es que hasta ahora los navegadores consideran HTTP como la norma, y HTTPS como la excepción, y por eso lo marcan de esta manera.

Google lleva luchando desde hace años para cambiar esta situación, siendo el principal promotor de que HTTPS se extienda por toda la Red. Está claro que no es totalmente altruista, pues ellos son tal vez los primeros interesados en que la Web sea cada vez más segura para que haya más comercio electrónico y puedan ganar más, pero hay que reconocerles que lo están haciendo muy bien y han puesto mucho de su parte para lograrlo. Empezaron ya hace justo 4 años, en junio de 2014, anunciando que la disponibilidad de un sitio a través de HTTPS iba a ser uno de los factores que contarían para posicionarlo en sus búsquedas, ahí es nada, lo cual llevó a muchos ya a moverse hacia las conexiones seguras.

No contentos con eso están utilizando la posición de poder que tienen con su navegador Chrome (actualmente con aproximadamente un 67% de cuota de mercado) para lograr dar la vuelta a la situación: que HTTPS sea lo normal y que HTTP sea la excepción.

Por ello, a partir del próximo 23 de julio de 2018, Chrome 68 dejará de marcar los sitios seguros e incluirá una alerta de "No seguro" para los sitios HTTP,

Esto no debería pillarte por sorpresa. Como tienen un mapa de lanzamientos muy claro ya lo anunciaron oficialmente en febrero de este año.

A partir de entonces los sitios inseguros se verán así:

Esto supone un cambio enorme. Y si no te lo parece es que desconoces cómo piensa la mayor parte de los usuarios 😉 Ten en cuenta que se verá así incluso un sitio web que no tenga que recoger datos ni efectúe cobros. Un simple sitio de información estará etiquetado como no seguro si no usa HTTPS. Y cada vez va a ser más agresivo pues en el futuro próximo tienen pensado que se vea de esta manera:

Imagínate un usuario promedio viendo eso al entrar en tu blog o en tu página dedicada a la cría de chinchillas. Se irá como alma que lleva el diablo.

Esto es un cambio de paradigma y nos fuerza a la práctica totalidad de los que gestionamos un sitio web a servirlo de manera segura o desaparecer del mapa.

Mito 1: Pero... Mi sitio no necesita HTTPS para nada

Bueno, como dice Troy Huntesto no es una negociación. O lo haces o pereces. Pero más allá de eso supongo que te interesará que nadie, ni atacantes, ni gobiernos ni un tipo con mala idea en la Wifi gratis de un Starbucks, pueda interceptar tu página en el camino y cambiar los contenidos para servir malware o poner spam: la mala imagen te la llevas tú.

Además cada vez hay más APIs de HTML5 que solamente funcionan bajo HTTPS (Geo-localización, Websockets, Web RTC...) y cada vez serán más, por lo que si quieres crear aplicaciones con ciertas características no te va a quedar más remedio.

Otra vía para obligarte es que, en Android P, la próxima versión del sistema operativo móvil utilizado por el 90% de los usuarios, las aplicaciones no podrán hacer peticiones a ningún origen que no sea seguro.

Finalmente, tener HTTPS mejorará tu posicionamiento en las búsquedas de Google. O al menos si no lo mejora (porque todo el mundo lo tendrá), no te perjudicará, porque lo que sí es seguro es que si no lo tienes se hundirá en los resultados.

Por lo tanto: lo necesitas sí o sí.

Mito 2: Poner HTTPS es caro y complicado

Nunca ha sido muy complicado, pero sí requería seguir unos pasos básicos:

  1. Generar una petición para la entidad certificadora desde nuestro servidor web
  2. Enviar la petición a la entidad certificadora, que generaba el certificado
  3. Instalar el certificado en nuestro servidor, lo que casi siempre consistía en hacer doble clic sobre éste (en Windows) o lanzar un simple comando (en Linux)
  4. Asignar el certificado a nuestro sitio web y, opcionalmente (pero muy recomendado), crear una redirección de HTTP a HTTPS para forzar a que todo el tráfico sea seguro. 

Ahora en la mayoría de los casos ya ni siquiera es necesario hacer esto, como veremos a continuación.

En cuanto al coste: hace 20 años los certificados eran carísimos y obtenerlos era complicado ya que te obligaban a verificar documentación personal o de empresa para concederlos. Con el tiempo se fueron reduciendo los precios al aumentar la competencia, y en la actualidad ya no es así. La mayor parte de las entidades certificadoras han tenido que bajar mucho los precios y puedes comprarlos por menos de 50 dólares. Ahora bien, ni siquiera es necesario que pagues nada por tu certificado SSL. Ahora existe una entidad certificadora gratuita que se ha constituido en forma de ONG y que se llama Let's Encrypt.

Casi todas las empresas tecnológicas importantes la apoyan y les donan dinero para poder seguir operando, siendo Google su principal impulsor al principio. De hecho, nosotros mismos en campusMVP les hemos donado un buen dinero hace poco y te animamos a hacer lo mismo si usas sus certificados.

Let's Encrypt ha revolucionado la Web y ha puesto al alcance de todo el mundo los certificados digitales necesarios para poder securizar gratuitamente tu web o aplicación. Ya no hay disculpa. Instalar un certificado HTTPS con Let's Encrypt es un proceso automatizado para el que solo necesitas usar una instrucción de línea de comandos.

Además existen otras opciones, como utilizar los servicios gratuitos de CloudFlare, que incluyen muchas cosas, pero la más evidente y directa es que tienes tu sitio securizado con HTTPS solo por el hecho de añadir este proxy/caché delante.

Si tienes tu sitio web colgado gratuitamente en Github Pages usando Jekyll, desde hace poco podrás tener HTTPS solo con marcar un "check" en las propiedades del repositorio, ya que GitHub y Let's Encrypt se han unido para proporcionártelo de forma gratuita.

Es decir, más fácil y barato imposible.

Mito 3: HTTPS hace que tu sitio vaya más lento

Esto sobre todo lo piensan los que, como yo, llevan en la Red muchos años. Hace mucho tiempo este podía ser el caso y existían dos causas principales:

  1. La conexión inicial requiere dos viajes de ida y vuelta al servidor en cada sesión que se inicie
  2. El cifrado de los datos hace que la CPU deba trabajar más, ya que no solo hay que enviarlos, hay que cifrarlos antes de hacerlo

Nada de esto aplica ya hoy en día, puesto que los últimos protocolos (TLS 1.2 y 1.3) permiten recordar los parámetros entre sesiones y todos los procesadores desde hace  muchos años incluyen instrucciones específicas para realizar operaciones criptográficas (como AES-NI) que hacen que el impacto del cifrado sea absolutamente inapreciable.

Pero es que además la disponibilidad en todos los servidores modernos de la versión 2 de HTTP (HTTP/2) hace que, en realidad, los sitios vayan mucho más rápido. El motivo es que HTTP/2 solo funciona a través de HTTPS, y permite reutilizar las conexiones para poder descargar a través de una sola, múltiples archivos. Esto hace que se reduzca al mínimo la necesidad de establecer múltiples conexiones con el servidor (con los costes de tráfico y tiempo que ello conlleva) y se acelera enormemente el trasiego de información. De hecho las técnicas de "bundling" de archivos  e imágenes (sprites) que se hacían para optimizar las aplicaciones tradicionales cada vez tienen menos sentido gracias a HTTP/2.

En resumen

Google, aprovechando el poderío de Chrome, está intentando darle la vuelta a la situación de la seguridad en la Web, haciendo que lo "anormal" y destacado pase a ser una página insegura y no al revés como ahora.

En unos pocos días, el 23 de julio, si no tienes tu sitio web bajo un dominio con HTTPS, Chrome empezará a indicar que no es seguro en la barra de direcciones. Dado que lo utiliza la mayor parte de los usuarios de Internet, deberías tomártelo en serio. Y la cosa irá a peor pronto sacando además un icono rojo de advertencia.

Esto es una gran noticia y, en contra de lo que alguna gente piensa, poner tu sitio a servir páginas con HTTPS es rápido, sencillo, gratuito y no solo no perjudicará la velocidad, sino que lo más probable es que aumente el rendimiento y la satisfacción de tus visitantes.

Así que si no lo has hecho todavía... ya estás tardando.

Fecha de publicación:
José Manuel Alarcón Fundador de campusMVP, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Microsoft lo ha reconocido como MVP (Most Valuable Professional) en desarrollo web desde el año 2004 hasta la actualidad. Puedes seguirlo en Twitter en @jm_alarcon o leer sus blog técnico o personal. Ver todos los posts de José Manuel Alarcón
Archivado en: Desarrollo Web

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Comentarios (4) -

No deberían de indicar mucho lo de let's encrypt ya que algunos hostings gratuitos no tienen habilitado el uso de manera automática solo los que son premium, y si logras generar un certificado para tu sitio de manera manual debes renovarlo cada 3 meses cosa que es tedioso y también que el certificado no esté en cadena que también algunos hostings gratuitos tampoco permiten, lo digo por que ya lo intente y solo me mandaban a comprar sus planes premium para usar let's encrypt, ahí ellos deberían de condicionar a todos los hosting que hagan el uso de los servicios de criptografía gratis sea host gratis o de paga.

Responder

José Manuel Alarcón
José Manuel Alarcón

Bueno, pues escoge otro tipo de hosting. Los hay gratuitos que sí lo permiten. Y si el tuyo no permite Let's Encrypt tampoco te permitirá la renovación automática de uno de pago ¿verdad?

Finalmente, Let's Encrypt es una de las opciones. Si lees con detenimiento verás que otra buena opción es usar CloudFlare que te funcionará con un hosting de cualquier clase, sea gratuito o no: mientras tengas un dominio propio funcionará, algo que necesitas en cualquier caso para tener un certificado. Lástima que no haya dominios gratuitos también ;-)

Saludos.

Responder

Prueba a buscar "SmartBox hosting" en Google, ellos ofrecen Let's Encrypt en sus servicios de hosting.

Responder

Agencia SEM
Agencia SEM

Muy interesante. Me parece muy bien todo lo expuesto en este post para instalar nuestro certificado de seguridad. Buen trabajo y un saludo!!

Responder

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.