Soporte de HTTP/2 en Plesk

Información general

HTTP/2 (también conocido como HTTP/2.0 y HTTP 2.0) es la segunda versión más importante del protocolo de red HTTP usado por la red. Ratificado en mayo del 2015, HTTP/2 se concibió para resolver algunos problemas significativos de rendimiento de HTTP 1.1. Si desea examinar todas las ventajas de este protocolo, haga clic aquí. Actualmente HTTP/2 es soportado por la mayoría de navegadores web.

Los clientes de Plesk pueden disponer de soporte de HTTP/2 a partir de la versión 12.5.30 Actualización #28. Tenga en cuenta que es imprescindible disponer de la versión más reciente de nginx.

Nota: HTTP/2 sólo se soporta para sitios SSL. Los sitios no SSL seguirán operando bajo HTTP/1.x.

Cómo activar el soporte de HTTP/2 para su sitio web

Compruebe que su servidor web nginx está debidamente actualizado y en ejecución. Puede comprobarlo en las páginas Herramientas y configuración -> Componentes del servidor y en Herramientas y configuración -> Administración de servicios.

components

services

Acceda a su servidor mediante SSH como root y active el soporte de HTTP/2 en Plesk usando la siguiente utilidad de línea de comandos:

# plesk bin http2_pref enable

En el último paso, su servidor web nginx se configurará para usar el protocolo TLS con ciphers modernos y seguros, se recreará toda la configuración del servidor web y todos sus sitios web y los de sus clientes que tengas soporte para SSL se transferirán a HTTP/2.

Compruebe la salida del comando para ver si existe algún error o advertencia debido al cambio a HTTP/2. De existir algún problema, consulte la sección Resolución de problemas a continuación.

Nota: para comprobar que HTTP/2 está activado en un dominio, simplemente use un servicio online como puede ser https://tools.keycdn.com/http2-test.

Si desea volver a HTTP 1.x y desactivar HTTP/2, ejecute el siguiente comando:

# plesk bin http2_pref disable
Soporte de ALPN

Para un correcto uso de HTTP/2 en Google Chrome, el servidor web nginx debe soportar ALPN (Application-Layer Protocol Negotiation). Si desea más información, consulte la documentación de ALPN.

En Plesk se soporta ALPN para servidores web nginx para los siguientes sistemas operativos: CentOS 7, RedHat Enterprise Linux 7, Ubuntu 14.04, Ubuntu 16.04 y Debian 8.

Esto significa que HTTP/2 con Plesk funciona en los sistemas operativos mencionados en todos los navegadores modernos.

Resolución de problemas

Si experimenta problemas al activar el soporte de HTTP/2 para un sitio web o bien el resultado de la verificación del sitio con https://tools.keycdn.com/http2-test muestra que únicamente se ha activado el protocolo HTTP 1.x, efectúe los pasos detallados a continuación.

  1. Compruebe que el soporte de SSL ha sido activado para el sitio web yendo a la sección Configuración de hosting del dominio. HTTP/2 sólo se soporta para sitios SSL. Los sitios no SSL seguirán operando bajo HTTP /1.x. Esto es una restricción del servidor web nginx y de los navegadores web.
  2. Compruebe que nginx ha sido activado:

    # plesk sbin nginxmng –s

    De ser necesario, actívelo:

    # plesk sbin nginxmng -e

  3. Compruebe que el paquete de OpenSSL corresponde a la versión 1.0.1 o a una versión posterior:

    # rpm -qa | grep openssl

    openssl-1.0.1e-42.el6_7.4.x86_64.

  4. Compruebe que en /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php no existe ninguna plantilla de configuración personalizada. De existir, elimínela y vuelva a crear los archivos de configuración:

    # plesk sbin httpdmng --reconfigure-all

    Como alternativa, si no desea eliminar sus personalizaciones, puede modificar el archivo /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php tal y como se detalla a continuación.

    Busque una fila similar a la siguiente:

    ($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') ?>;

    Reemplácela por las dos siguientes filas:

    ($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') .

    ($OPT['ssl'] && $VAR->domain->physicalHosting->proxySettings['nginxHttp2'] ? ' http2' : '') ?>;

    A continuación, ejecute el siguiente comando:

    # plesk bin http2_pref enable

  5. En el caso de experimentar problemas de conexión SSL teniendo HTTP/2 activado, compruebe que la directiva ssl_ciphers en /etc/nginx/conf.d/ssl.conf o en el nginxDomainVirtualHost.php personalizado presenta el siguiente valor:

    ssl_ciphers EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20:EECDH+SHA256+AES128:EECDH+SHA384+AES256:EDH+SHA256+AES128:EDH+SHA256+AES256:EECDH+SHA1+AES128:EECDH+SHA1+AES256:EDH+SHA1+AES128:EDH+SHA1+AES256:EECDH+HIGH:EDH+HIGH:AESGCM+AES128:AESGCM+AES256:CHACHA20:SHA256+AES128:SHA256+AES256:SHA1+AES128:SHA1+AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!EDH+3DES;

  6. Si su sitio no funciona en algunos navegadores tras activar HTTP/2, esto significa que no dispone de los ciphers ni de los protocolos necesarios para el soporte de HTTP/2. Para configurar los protocolos disponibles y la lista de los ciphers TLS tras haber activado HTTP/2, use la utilidad sslmng de Plesk. Por ejemplo, si desea usar exactamente la misma lista de ciphers que Plesk, el comando sería el siguiente:

    #plesk sbin sslmng --services=nginx --custom --ciphers="EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20" --protocols="TLSv1 TLSv1.1 TLSv1.2"

    La configuración se almacenará en el archivo /etc/nginx/conf.d/ssl.conf. No le recomendamos editar este archivo de forma manual.

  7. Si estos pasos no le ayudan a resolver el problema, póngase en contacto con el equipo de soporte técnico de Plesk.