Cómo agregar HTTPS a su sitio web de forma gratuita en 10 minutos y por qué necesita hacer esto ahora más que ...

La semana pasada, Google anunció que Chrome 68, que llegará en julio, marcará todas las páginas HTTP como "No seguras".

Este es el empujón más fuerte hasta ahora para impulsar la web hacia el cifrado por defecto y ha tardado mucho en llegar.

Aunque hay una gran cantidad de evidencia que habla de por qué todos deberían subirse al carro de HTTPS, mucha gente todavía no ve el valor de servir sus sitios de forma segura.

" ¿Por qué necesito esto para un blog ?"

He escrito sobre el valor de HTTPS anteriormente, pero solo para reiterar:

  • HTTPS protege a los usuarios contra los ataques de Man In the Middle.
  • Se requiere HTTPS para aprovechar muchas funciones nuevas en navegadores como Service Workers
  • HTTPS impacta en el SEO

Si no está convencido, lea doesmysiteneedhttps.com para obtener una idea completa de por qué todos los sitios web deben tener un servicio seguro.

Y si todavía no lo entiendes, entonces la vida se pondrá mucho más difícil para ti.

En un esfuerzo por alejar a los usuarios de los sitios inseguros, los navegadores han estado avergonzando a los sitios web servidos de manera insegura en ciertos contextos.

Chrome 56 inició esa tendencia marcando páginas con campos de inicio de sesión sensibles como "No seguro", mientras que Chrome 62 extendió esta advertencia a todas las páginas HTTP que contenían cualquier tipo de campo de entrada. Además, la advertencia se muestra en todas las páginas HTTP en modo incógnito, independientemente de si contienen un campo de entrada o no.

Firefox también advierte a los usuarios cuando intentan completar un formulario de inicio de sesión inseguro.

Ahora Chrome ha decidido colocar esta advertencia en todas las páginas HTTP en el futuro. Con el tiempo, el icono junto a la etiqueta "No seguro" cambiará y el texto se volverá rojo para enfatizar aún más que las páginas HTTP no son confiables.

Para evitar que los usuarios vean esta advertencia en su sitio web, todo lo que necesita es obtener un certificado SSL válido. La buena noticia es que hacerlo no es tan difícil ni costoso como solía ser. De hecho, le mostraré cómo implementar HTTPS en su sitio de forma gratuita utilizando Cloudflare. Y no llevará mucho tiempo.

¿Por qué Cloudflare?

CloudFlare puede ayudarlo a asegurar un certificado SSL de forma gratuita, independientemente de la infraestructura del lado del servidor que tenga. También funciona para sitios alojados en plataformas que no proporcionan acceso al servidor, como GitHub Pages, Ghost y similares.

No es necesario instalar nada ni escribir ningún código. Esto lo convierte en una excelente opción para implementar HTTPS en su sitio web y el tiempo de configuración no debería llevar literalmente más de 10 minutos.

También proporciona una miríada de otros beneficios en seguridad y rendimiento de su sitio web que no voy a cubrir aquí. Pero hablaré un poco sobre cómo funciona todo para que puedas tener una buena idea de cómo es capaz de hacer todas esas cosas.

Cómo funciona Cloudflare

Cloudflare se encuentra justo en medio del tráfico entre los visitantes de su sitio web y su servidor. Los visitantes pueden ser humanos, rastreadores y bots (como robots de motores de búsqueda) o piratas informáticos. Al actuar como intermediario entre su servidor web y los visitantes de su sitio, Cloudflare ayuda a filtrar todo el tráfico ilegítimo para que solo se procese lo bueno.

Ahora puede que se pregunte si todo eso podría tener un efecto adverso en la velocidad de su sitio web, pero es todo lo contrario. Cloudflare tiene centros de datos en todo el mundo, por lo que solo utilizará el punto final más cercano a su visitante, lo que debería hacer que su sitio sea mucho más rápido de lo que era antes.

Ahora que sabemos cómo funciona Cloudflare, echemos un vistazo a cómo configurar un sitio web en su infraestructura y cómo acceder a HTTPS de forma gratuita. El enfoque aquí estará en las funciones que Cloudflare proporciona de forma gratuita, pero tenga en cuenta que los planes de pago también están disponibles con un montón de funciones adicionales.

Configurar un nuevo sitio

Después de registrarse en Cloudflare, lo primero que debe hacer es agregar un dominio y escanear los registros DNS.

Una vez que se completa el escaneo, se mostrarán todos los registros DNS del dominio. Puede elegir los subdominios en los que desea habilitar Cloudflare y realizar las modificaciones que desee. Una vez que esté listo, haga clic en Continuar para ir al siguiente paso.

Seleccione el plan gratuito y haga clic en Continuar.

A continuación, deberá cambiar los servidores de nombres en su registrador de dominio a los proporcionados por Cloudflare. El proceso para hacer esto en cada registrador de dominios es ligeramente diferente, así que consulte con su registrador de dominios.

Así es como se ve en Namecheap:

Ahora debe esperar a que los cambios del servidor de nombres terminen de propagarse. Haga clic en Volver a comprobar los servidores de nombres después de un tiempo para ver si su sitio ahora está activo en Cloudflare. Esta es la parte más larga de la configuración y podría llevar hasta 24 horas, pero en mi experiencia tomó menos de 5 minutos.

Una vez que Cloudflare haya validado las actualizaciones de su servidor de nombres, su sitio se activará en el servicio.

Si desea estar absolutamente seguro de que su configuración de DNS se ha propagado a todas partes, ¿Cuál es mi DNS? Le brinda una forma de verificar a qué dirección IP se resuelve su dominio en diferentes ubicaciones.

También puede usar digo nslookupen la línea de comando para verificar la configuración de DNS de sus dominios.

De esta manera, puede estar seguro de que todo el tráfico que va a su dominio ahora se enruta a través de Cloudflare.

Antes de comenzar a configurar Cloudflare, asegúrese de que su navegador no esté usando los registros DNS antiguos de su caché. En Chrome y Firefox, puede hacer esto borrando el historial de su navegador.

Obtener SSL gratis

SSL sigue siendo un servicio premium y muchas autoridades de certificación cobran cantidades significativas antes de emitir un certificado SSL. No es algo que pueda obtener de forma gratuita en todas partes, pero eso está cambiando rápidamente en la industria.

Ahora que tiene Cloudflare en medio de su tráfico web, debería obtener SSL en su dominio automáticamente. El certificado puede tardar hasta 24 horas en activarse, pero en mi experiencia, no lleva mucho tiempo.

Una vez que el certificado se active, cargue su sitio en un navegador. Debería ver el sitio servido a través de HTTPS y un bonito candado verde en la barra de direcciones.

Si ve más información sobre el certificado, verá la autoridad de certificación que lo emitió (Comodo en mi caso) y la fecha de vencimiento. Una de las mejores cosas de Cloudflare es que la renovación del certificado se realiza automáticamente para que no se preocupe.

Diferencia entre SSL flexible, completo y completo (estricto)

Cloudflare hace que sea realmente fácil obtener SSL en su sitio de forma gratuita sin configurar nada, pero no siempre es lo mismo que servir su sitio a través de SSL directamente desde el origen.

Hay tres implementaciones de SSL de Cloudflare. El primero, que se obtiene de forma predeterminada, es SSL flexible. En este caso, el tráfico se cifra entre los usuarios de su sitio y Cloudflare, pero este cifrado no llega hasta el servidor de origen. Cloudflare todavía habla con su servidor a través de HTTP simple.

Esto significa que cualquier intermediario (como los proveedores de red) entre Cloudflare y su servidor puede ver el tráfico. Si recopila información confidencial en su sitio web, absténgase de utilizar esta opción.

Para tener cifrado hasta el servidor de origen, debe utilizar la implementación completa o completa (estricta). El primero requiere que instale un certificado válido en su servidor, pero no se verificará la autenticidad del certificado para que pueda arreglárselas con un certificado autofirmado. Por otro lado, la implementación completa (estricta) requiere que instale un certificado SSL válido que haya sido firmado por una autoridad certificadora de confianza.

Si no desea comprar SSL de empresas como Comodo, puede obtener certificados Origin CA gratuitos de Cloudflare que se pueden usar con las opciones Completa o Completa (estricta), ya que Cloudflare confía en ellas. Pero tenga en cuenta que solo Cloudflare confía en estos certificados, por lo que dejarán de funcionar si decide quitar su sitio web de la infraestructura de Cloudflare.

Si no controla el entorno de su servidor, digamos que si su sitio está alojado en páginas de GitHub o plataformas similares, no podrá utilizar las implementaciones Completa o Completa (estricta), lo que significa que aunque sus usuarios vean HTTPS en la barra de direcciones, el tráfico no llegará hasta el servidor de origen cifrado.

Pero eso sigue siendo una gran mejora en comparación con la falta de HTTPS porque protegerá a sus usuarios de ser Man In The Middled en el lado del cliente.

Fortalecer la implementación de SSL

Independientemente de la implementación de SSL que elija, hay formas de fortalecerla para asegurarse de que los usuarios nunca puedan acceder a su sitio a través de HTTP inseguro. Qualys SSL Labs es una herramienta que le ayuda a realizar una prueba en su configuración SSL para ver si hay margen de mejora.

Aunque obtengo una calificación A en mi dominio, si profundiza en los resultados, verá que definitivamente hay margen de mejora en el lado del intercambio de claves y la fuerza de cifrado.

Echemos un vistazo a algunas cosas que podemos hacer dentro de Cloudflare para fortalecer nuestro SSL y obtener calificaciones aún más altas.

Forzar HTTPS en todas partes

Una vez que se haya pasado a HTTPS, definitivamente querrá evitar que los usuarios accedan a su sitio a través de una conexión insegura. Puede hacer esto en Cloudflare redireccionando 301 todo el tráfico HTTP a HTTPS.

En Configuración de cifrado, busque la opción Usar siempre HTTPS y actívela.

Habilitar la seguridad de transporte estricta HTTP (HSTS)

He escrito sobre cómo HSTS fortalece el SSL de sus sitios en el pasado, pero repasemos brevemente.

El problema con solo redirigir 301 el tráfico HTTP a HTTPS es que la solicitud insegura inicial aún pasa por el cable, lo que significa que cualquier persona con acceso al tráfico podría leerla.

HSTS es un encabezado de respuesta que soluciona ese problema diciéndole al navegador que no puede realizar una solicitud insegura a un sitio web durante un período de tiempo específico.

Así es como se ve el encabezado:

strict-transport-security: max-age=31536000

Una vez que el navegador recibe este encabezado, no realizará una solicitud insegura a su sitio durante los próximos 31,536,000 segundos (valor de 1 año). En cambio, todas las solicitudes HTTP se actualizarán internamente a HTTPS antes de enviarse a través de la red.

Si desea evitar que se acceda a todos los subdominios a través de HTTP, necesitará la includeSubdomainsdirectiva. También puede agregar la preloaddirectiva para permitir que los proveedores de navegadores creen su sitio en el propio navegador como solo HTTPS.

strict-transport-security: max-age=31536000; includeSubdomains; preload

Una vez que haya habilitado HSTS en su dominio, puede estar bastante seguro de que una vez que alguien haya cargado su sitio web a través de HTTPS, de ahora en adelante, solo podrá acceder a él a través del esquema seguro.

Por lo tanto, antes de habilitar HSTS en su sitio, asegúrese de estar seguro de que todo su tráfico se servirá a través de HTTPS, de lo contrario, tendrá problemas.

Para habilitar esto en Cloudflare, vaya a la configuración de Crypto y desplácese hacia abajo hasta la sección HTTP Strict Transport Security (HSTS) . Haga clic en Cambiar la configuración de HSTS, habilite todas las opciones relevantes y presione Guardar .

Y en caso de que se lo pregunte, el soporte del navegador para HSTS es bastante bueno.

Corregir referencias de esquemas inseguros

Si inserta un recurso pasivo (como una imagen) de forma insegura en una página segura, el navegador aún lo carga sin problemas. Simplemente quita el candado verde de la barra de direcciones. Puede ver un ejemplo de este error aquí.

Si revisa la consola del navegador, verá algunas advertencias o errores que apuntan al recurso que se insertó de manera insegura. En este caso es

HTTP image

Para solucionar esto, simplemente cambie el esquema a HTTPS y todo volverá a estar bien.

HTTP image

Si tiene una gran cantidad de contenido en su sitio incrustado de manera insegura, encontrar y corregir cada uno podría ser bastante tedioso. Pero Cloudflare puede ayudarlo aquí nuevamente con la función de reescritura automática de HTTPS.

Para estar doblemente seguro de que ningún contenido de su sitio web se pueda ofrecer de forma insegura, considere implementar una Política de seguridad de contenido en su sitio.

Ahora veamos cómo los cambios anteriores han afectado nuestro informe de SSL Labs. Volví a ejecutar la prueba en mi dominio y ahora obtenemos una calificación A +.

Si verifica las calificaciones individuales en el gráfico, nada ha cambiado, pero aún obtenemos una implementación SSL realmente segura de forma gratuita y en solo unos minutos.

Alternativas a Cloudflare para SSL gratuito

Si prefiere no usar Cloudflare por algún motivo, existen otras formas de obtener su sitio web en HTTPS de forma gratuita. Aquí hay dos opciones que puede probar:

Vamos a cifrar

Si tiene control sobre su servidor, puede implementar HTTPS rápidamente en su sitio usando Let's Encrypt. Ofrecen certificados SSL gratuitos que duran tres meses y se pueden renovar automáticamente.

Incluso si no tiene acceso al servidor, consulte con su proveedor de alojamiento web. Algunos hosts le permitirán usar Let's Encrypt SSL sin proporcionar acceso al shell.

Administrador de certificados de Amazon AWS

Amazon también emite y renueva automáticamente certificados SSL para los clientes en su infraestructura de Amazon Web Services (AWS). De esa manera, puede configurar y olvidar HTTPS en su sitio si usa recursos de AWS como Cloudfront.

Independientemente de cómo implemente HTTPS en su sitio web, lo más importante es asegurarse de realizar la configuración lo antes posible para que sus usuarios obtengan los beneficios de seguridad que brinda y usted no se pierda varias funciones interesantes en los navegadores que ayudarán creas mejores experiencias web.

Si te gustó este artículo, compártelo con otras personas que podrían beneficiarse de su lectura. Por cierto, consulte mi blog en freshman.tech para ver artículos sobre desarrollo web. Gracias por leer.