Prendre en charge HTTP/2 dans Plesk

Présentation

HTTP/2 (également connu comme HTTP/2.0 ou HTTP 2.0) est la deuxième version majeure du protocole réseau HTTP utilisé sur le World Wide Web. Ratifié en mai 2015, HTTP/2 a été créé pour résoudre de gros problèmes de performance du protocole HTTP 1.1. Vous pouvez découvrir les avantages de ce protocole ici. Actuellement, HTTP/2 est pris en charge par les principaux navigateurs Web.

La prise en charge HTTP/2 est disponible pour les clients Plesk à partir de la version 12.5.30, Mise à jour 28, et exige la dernière version de Nginx.

Remarque : HTTP/2 n'est pris en charge que pour les sites SSL. Les sites non-SSL utilisent donc toujours HTTP/1.x.

Activation de la prise en charge HTTP/2 pour votre site Web

Assurez-vous que le serveur Web Nginx est bien à jour (dernière version) et fonctionnel. Pour ce faire, consultez les pages Outils & Paramètres > Composants du serveur et Outils & Paramètres > Gestion de services.

composants

services

Identifiez-vous en tant que root sur votre serveur via SSH. Activez la prise en charge HTTP/2 dans Plesk à l'aide de l'utilitaire de ligne de commande suivant :

# plesk bin http2_pref enable

Pendant la dernière étape, votre serveur Web Nginx est configuré pour l'utilisation du protocole TLS avec des chiffrements sûrs et actuels, toute la configuration du serveur Web est reconçue et tous les sites des clients avec "prise en charge SSL" passent au protocole HTTP/2.

Examinez le résultat de la commande pour voir s'il contient des erreurs ou des avertissements liés au passage au HTTP/2. En cas de problème, consultez la section Résolution des problèmes ci-dessous.

Remarque : vous pouvez simplement utiliser un service en ligne comme https://tools.keycdn.com/http2-test pour vérifier si HTTP/2 est activé sur un domaine.

Si vous souhaitez revenir au HTTP 1.x et désactiver HTTP/2, utilisez la commande suivante :

# plesk bin http2_pref disable
Prise en charge de l'extension ALPN

Pour utiliser correctement HTTP/2 dans Google Chrome, le serveur Web Nginx doit prendre en charge l'extension ALPN. Pour plus d'informations, reportez-vous à la documentation ALPN.

La prise en charge d'ALPN pour les serveurs Web Nginx est disponible dans Plesk pour les systèmes d'exploitation suivants : CentOS 7, Red Hat Enterprise Linux 7, Ubuntu 14.04, Ubuntu 16.04 et Debian 8.

Cela signifie que le protocole HTTP/2 géré par Plesk fonctionne avec ces OS dans tous les navigateurs actuels.

Résolution des problèmes

Si vous rencontrez des difficultés lors de l'activation de la prise en charge du protocole HTTP/2 pour un site Web ou si après vérification d'un site avec https://tools.keycdn.com/http2-test il s'avère que le protocole HTTP 1.x est activé, procédez comme suit pour résoudre le problème.

  1. Assurez-vous que la prise en charge SSL est activée pour le site Web dans la section Paramètres d'hébergement du domaine. HTTP/2 n'est pris en charge que pour les sites SSL. Les sites non-SSL utilisent donc toujours HTTP/1.x. Il s'agit d'une restriction du serveur Web Nginx et des navigateurs Web.
  2. Vérifiez que Nginx est activé :

    # plesk sbin nginxmng –s

    Activez si nécessaire :

    # plesk sbin nginxmng -e

  3. Vérifiez la version du pack OpenSSL (1.0.1 ou supérieure requise) :

    # rpm -qa | grep openssl

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

  4. Vérifiez qu'il n'y a pas de template de configuration personnalisé dans /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php. S'il y en a un, supprimez-le et recréez les fichiers de configuration :

    # plesk sbin httpdmng --reconfigure-all

    Autre solution, si vous ne voulez pas supprimer vos personnalisations : modifiez le fichier /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php comme ci-dessous.

    Trouvez la ligne du type :

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

    Remplacez-la par les deux lignes suivantes :

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

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

    Ensuite, exécutez la commande :

    # plesk bin http2_pref enable

  5. En cas de problèmes de connexion SSL lorsque HTTP/2 est activé, vérifiez que la directive ssl_ciphers dans /etc/nginx/conf.d/ssl.conf ou dans le fichier personnalisé nginxDomainVirtualHost.php inclut la valeur suivante :

    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 votre site ne fonctionne pas avec certains navigateurs après activation du HTTP/2, cela peut signifier qu'il y a des chiffrements et protocoles inutiles pour la prise en charge HTTP/2. Faites appel à l'utilitaire sslmng de Plesk pour configurer la liste des protocoles et des chiffrements TLS disponibles après activation du HTTP/2. Par exemple, si vous souhaitez utiliser exactement la même liste de chiffrements que Plesk, la commande est la suivante :

    #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.1 TLSv1.2"

    La configuration est alors stockée dans le fichier /etc/nginx/conf.d/ssl.conf. Nous déconseillons la modification manuelle de ce fichier.

  7. Si aucune des étapes précédentes n'a résolu le problème, contactez l'assistance technique de Plesk.