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.
Note: 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.
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.
Note: 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.
-
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.
-
Vérifiez que Nginx est activé :
# plesk sbin nginxmng -s
Activez si nécessaire :
# plesk sbin nginxmng -e
-
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.
-
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
-
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;
-
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 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. -
Si aucune des étapes précédentes n’a résolu le problème, contactez l’assistance technique de Plesk.