Plesk a un support natif HTTP / 2. Son processus de déploiement nécessite une planification minutieuse, bien que le déploiement de HTTP / 2 sur Plesk soit beaucoup plus facile par rapport à d'autres panneaux de contrôle. Ce guide s'applique à divers systèmes d'exploitation. Les étapes fournies ici fonctionneront tant que vous disposez des versions suffisantes de Plesk et d'OpenSSL. Je décrirai ces exigences dans "Étape 1: Vérification des exigences".
Vous devez tenir compte du fait que de nombreux navigateurs ne prendront en charge HTTP / 2 pour votre site Web que si vous utilisez un certificat SSL. Lorsqu'un certificat SSL n'est pas utilisé, le contenu ne sera pas diffusé via HTTP / 2. Heureusement, il existe de nombreuses façons d'obtenir un certificat SSL. Si vous souhaitez obtenir un certificat Let's Encrypt, consultez ce guide pour en créer un sur Plesk: Let's Encrypt sur Plesk .
Même s'il y a de fortes chances que vous puissiez activer HTTP / 2 sans que vos utilisateurs ou visiteurs ne s'en rendent compte (et sans aucun temps d'arrêt), vous devez annoncer cette maintenance. Dans le cas où votre suite de chiffrement SSL n'a pas été correctement configurée, il pourrait y avoir un temps d'arrêt. Heureusement, il est très facile d'annuler les modifications à l'aide de l'outil intégré de Plesk.
Vous devez être absolument sûr qu'aucune modification directe n'a été apportée aux fichiers de configuration, car nous remplacerons certains fichiers de configuration. Cependant, il n'y a rien à craindre au cas où vous auriez exclusivement effectué des modifications à l'aide de méthodes prises en charge (dans des fichiers personnalisés).
Si possible, vous devez faire tourner un autre serveur cloud Vultr avec une installation Plesk standard et exécuter la ou les commandes ci-dessous. Ensuite, en fonction de sa réussite (ou de son échec), vous pouvez prendre des mesures pour déboguer et / ou résoudre instantanément tous les problèmes qui pourraient survenir lors de futurs déploiements HTTP / 2 sur des serveurs de production actuellement utilisés.
Activation de HTTP / 2
Étape 1: vérification des exigences
Prêt à l'emploi, vous pouvez activer la prise en charge HTTP / 2 pour le proxy inverse sur lequel Plesk a été déployé. Dans le cas où vous n'êtes pas sûr que votre serveur utilise un proxy inverse, vous devriez vérifier le "Service Monitor". Si Apache et Nginx y sont répertoriés, il est sûr de supposer que votre installation utilise actuellement un proxy inverse. Si vous ne voyez qu'Apache ou seulement Nginx, vous utiliserez très probablement un seul serveur Web.
Dans le noyau, il existe une exigence spécifique qui est absolument requise pour que HTTP / 2 fonctionne, qui est une version OpenSSL avec prise en charge ALPN.
Cependant, si vous avez installé la version 12.5.30 ou supérieure de Plesk sur CentOS / RHEL 7, Ubuntu 14.04, Debian 8 ou supérieur, Nginx est déployé avec la prise en charge ALPN prête à l'emploi.
Si vous avez une ancienne version de Plesk ou de système d'exploitation, vous pouvez mettre à niveau certains packages. Cependant, je ne soutiens ni ne documente cela. Ces versions et systèmes d'exploitation sont très anciens, et la meilleure pratique serait de les mettre à jour. Tenez également compte des risques de sécurité liés à l'utilisation de logiciels obsolètes.
Il n'y a aucun document indiquant explicitement quels systèmes d'exploitation et versions sont compatibles avec HTTP / 2 sur Plesk; cependant, si vous utilisez la version la plus récente (au moment de la publication de ce guide), vous devez satisfaire aux exigences. Vous pouvez supposer en toute sécurité que les anciens systèmes d'exploitation tels que CentOS / RHEL 5 ne seront pas compatibles.
Outre les exigences de version d'OpenSSL, notez qu'Apache n'a pas nécessairement besoin d'être compatible avec HTTP / 2 également. La prise en charge HTTP / 2 pour Apache est disponible depuis la version 2.4.17, mais si vous utilisez un proxy inverse (qui est le paramètre par défaut dans Plesk), seule la version Nginx doit suffire. Le serveur principal, Apache, ne devrait pas être compatible. Vous pouvez consulter le "Service Manager" dans Plesk pour vous assurer que vous utilisez un proxy inverse. Lorsque Nginx y est répertorié, il est sûr de supposer qu'Apache et Nginx sont installés en tant que configuration de proxy inverse où Nginx agit en tant que serveur frontal.
La commande suivante indique si Nginx a été activé ou non.
/usr/local/psa/admin/bin/nginxmng -s
Pour OpenSSL, vous devriez avoir au moins la version 1.0.1. Vous pouvez vérifier en utilisant la commande suivante:
rpm -qa | grep openssl
Cela imprimera une version similaire à:
openssl-1.0.1e-42.el6_7.4.x86_64
Si la version d'OpenSSL n'est pas égale ou supérieure à 1.0.1, vous devez mettre à jour votre système d'exploitation. Plesk déployé sur des systèmes d'exploitation plus récents utilisera OpenSSL 1.0.1 prêt à l'emploi.
Étape 2: activer HTTP / 2 dans Plesk
Selon le système d'exploitation utilisé, activez HTTP / 2 à l'aide de l' http2_pref
outil. Cette commande doit être exécutée en tant que root.
Activation de HTTP / 2 sur CentOS / RHEL
Exécuter: /usr/local/psa/bin/http2_pref enable
Activer HTTP / 2 sur Ubuntu / Debian
Exécuter: /opt/psa/bin/http2_pref enable
Étape 3: Améliorez la suite de chiffrement
L'utilisation d'une bonne suite de chiffrement est extrêmement importante pour la sécurité. La prise en charge de protocoles obsolètes annulera efficacement l'effet de vos mesures de sécurité. Assurez-vous d'ajuster les protocoles disponibles et les versions TLS disponibles à l'aide de l'outil Plesk intégré sslmng
.
Par exemple, l'activation des chiffrements et versions TLS suivants garantira la compatibilité avec HTTP / 2. Si vous n'êtes pas certain des chiffres et des versions que vous devez activer, respectez les paramètres suivants:
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"
Cette commande se modifie /etc/nginx/conf.d/ssl.conf
. Vous pouvez modifier ce fichier directement, mais en utilisant la commande répertoriée ci-dessus, les modifications des mises à jour Plesk seront conservées.
Afin d'obtenir "Perfect Forward Secret" en utilisant une autre suite de chiffrement, vous pouvez essayer les chiffrements suivants:
ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
Il existe de nombreuses suites de chiffrement disponibles, et vous devez choisir celle qui correspond le mieux à vos besoins. Vous devriez consulter un site Web tel que Cipherli.st afin de rassembler une suite de chiffrement qui correspond à vos besoins. En le spécifiant dans l' sslmng
outil, la suite de chiffrement sera utilisée instantanément.
Pour vérifier la prise en charge TLS de votre navigateur en tant que client, utilisez l' outil SSL Qualys . Lorsque vous n'autorisez pas suffisamment de chiffres ou de versions TLS, certains sites Web peuvent devenir inaccessibles.
Étape 4: vérification de la compatibilité HTTP / 2
Après avoir activé HTTP / 2, vous devez vérifier si vos sites Web et votre serveur Web sont accessibles via HTTP / 2. Il existe un outil Web très pratique pour cela: Test HTTP / 2 .
Afin d'obtenir un résultat précis, assurez-vous que vous avez désactivé tous les proxys inverses situés devant votre serveur. Par exemple, si vous utilisez un CDN qui ne prend pas en charge HTTP / 2, l'outil de test retournera que votre site Web ne prend pas en charge HTTP / 2 même s'il est correctement activé au niveau du serveur. Tout comme l'inverse: si vous avez un proxy inverse tel que Cloudflare devant votre site Web (qui prend en charge HTTP / 2), l'outil retournera toujours HTTP / 2 comme étant activé et fonctionnant, quelle que soit sa fonctionnalité au niveau du serveur .
Si certains navigateurs refusent de charger vos sites Web ou de diffuser du contenu à partir de votre serveur Web après avoir activé HTTP / 2, vous devez analyser votre configuration SSL à l'aide de l'outil SSL de Qualys .
(Facultatif) Restauration de la configuration HTTP / 2
Si nécessaire, si vous avez besoin de temps pour déboguer, vous pouvez (temporairement) désactiver HTTP / 2 simplement en exécutant la commande ci-dessous. Une fois que vous souhaitez réactiver HTTP / 2, exécutez simplement la commande pour l'activer et réessayez d'atteindre l'un de vos sites Web. Il n'y a aucun moyen d'activer ou de désactiver HTTP / 2 pour des domaines ou sites Web spécifiques; c'est un paramètre à l'échelle du serveur.
Désactiver HTTP / 2 sur CentOS / RHEL
Exécuter: /usr/local/psa/bin/http2_pref disable
Désactiver HTTP / 2 sur Ubuntu / Debian
Exécuter: /opt/psa/bin/http2_pref disable
Dépannage
Compte tenu des nombreux composants d'un serveur impliqués dans l'activation de HTTP / 2, dans certains cas, vous devrez peut-être dépanner lorsque les sites Web ne se chargent pas correctement ou pas du tout après avoir activé la prise en charge HTTP / 2.
Remarque: assurez-vous de ne pas désactiver la prise en charge HTTP / 2 à l'aide de l' http2_pref
outil lorsque vous suivez ces étapes.
Vérifier les exigences
Tout d'abord, assurez-vous de remplir les conditions décrites au début de cet article.
Recréer la configuration Nginx
Si vous remplissez les conditions requises pour HTTP / 2, vous pouvez tenter de recréer les fichiers de configuration Nginx. Vous devez savoir que cela supprimera toutes les configurations personnalisées, alors créez au préalable une sauvegarde du répertoire de configuration Nginx. Comme les fichiers de configuration peuvent être répartis sur tout le serveur, il est préférable de simplement créer un instantané ou de faire une sauvegarde. Ensuite, exécutez cette commande:
/usr/local/psa/admin/bin/httpdmng --reconfigure-all
Revérifier la suite de chiffrement
Si cela n'a aucun effet non plus, très probablement, la suite de chiffrement est à blâmer. Exécutez à nouveau la commande 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"
Erreur dans panel.ini
Assurez-vous que le fichier /usr/local/psa/admin/conf/panel.ini
contient le contenu suivant:
[webserver]
nginxHttp2 = true
Vous pouvez vérifier si le fichier contient cela rapidement en exécutant: cat /usr/local/psa/admin/conf/panel.ini | grep nginxHttp2
Cette commande ne renvoie-t-elle rien? Ensuite, le fichier est probablement en lecture seule, par exemple en raison d'un chattr
attribut. Il peut avoir été ajouté lors de l' http2_pref
exécution de la commande (pour activer HTTP / 2).
Vérifiez si SSL est utilisé
Lorsqu'un site Web n'utilise pas SSL, il revient à HTTP / 1.1. Seuls les sites Web utilisant SSL seront diffusés via HTTP / 2. Assurez-vous que vous n'appliquez pas HTTP / 2 localement dans tous les cas, car cela ne fonctionnera pas et n'est pas un problème côté serveur.
Autres options
Si cela ne fonctionne pas non plus, vous devriez consulter un expert Plesk, par exemple sur les forums Plesk. Dans de nombreux cas, les étapes ci-dessus permettront de résoudre la plupart des problèmes.
Une dernière mesure que vous pouvez prendre est simplement de redémarrer le serveur. Dans certains cas étranges, cela a résolu les problèmes à l'improviste. Cependant, vous devez toujours être en mesure d'identifier les problèmes pour éviter qu'ils ne se reproduisent (soudainement).
Cela conclut mon guide, merci d'avoir lu.