HTTP/2 para los usuarios de Google Chrome

Si eres un webmaster y has notado que los usuarios de Google Chrome que accedían anteriormente a través de HTTP 2 ahora lo hacen por HTTP 1, estas en el sitio correcto.

Esto es debido a un cambio de política en la más reciente actualización de Chrome , lanzada a finales de mayo, que elimina el soporte a NPN, un método para actualizar una conexión a HTTP 2.



La única manera que tienen estos usuarios de Chrome de acceder a tu sitio web por HTTP 2 es cambiando a un navegador diferente. Pero tú, como administrador, puedes restaurar el soporte a HTTP 2 actualizando OpenSSL a versiones superiores o iguales a la 1.0.2. Para saber mas detalles sobre este comportamiento puedes visitar el siguiente enlace en inglés.

Este post está destinado principalmente a CentOS 7 con instalaciones de Nginx desde el repositorio oficial. 

La instalación oficial de Nginx no está compilada con OpenSSL, con lo cual utiliza la instalación que tengas en tu CentOS, lo malo de esto es que a fecha de hoy no existen paquetes de OpenSSL superiores o iguales a la versión 1.0.2 disponibles para yum, con lo cual la única opción es instalarlo de manera independiente y en mi caso no funcionó. Para los que quieran intentarlo pueden seguir este manual de como actualizar OpenSSL a la ultima versión en CentOS 7. Yo no lo intenté.

Si queréis instalar la versión 1.1.0 de OpenSSL en CentOS 7, última a día de hoy, debéis modificar las siguientes lineas en el procedimiento anterior.

wget https://www.openssl.org/source/openssl-1.1.0.tar.gz
tar -zxf openssl-1.1.0.tar.gz
mv /usr/bin/openssl /root/
-bash-4.2# ln -s /usr/local/bin/openssl /usr/bin/openssl
-bash-4.2# openssl version
OpenSSL 1.1.0  25 Aug 2016

La vía que utilicé es más sencilla aunque no oficial: encontrar un repositorio de nginx compilado con OpenSSL. Este repositorio en mi caso fue el de CodeIT y aquí podréis acceder al repositorio de NginX para CentOS 7.

Mis pasos fueron los siguientes:
  1. deshabilitar el repositorio oficial de NginX
  2. instalar el repositorio de CodeIT 
  3. probar si hay una versión nueva con yum update nginx y en caso de no existir entonces hacer un downgrade para que me deje la misma versión pero del repositorio de CodeIT: yum downgrade nginx.
Con esto ya deberíamos poder acceder a nuestro sitio con Google Chrome y soporte para HTTP 2.

Comentarios