Ενεργοποίηση HTTP/2
Αντιμετώπιση προβλημάτων
Το Plesk έχει εγγενή υποστήριξη HTTP/2. Η διαδικασία ανάπτυξής του απαιτεί προσεκτικό σχεδιασμό, αν και η κυκλοφορία του HTTP/2 στο Plesk είναι πολύ πιο εύκολη σε σύγκριση με άλλους πίνακες ελέγχου. Αυτός ο οδηγός ισχύει για μια ποικιλία λειτουργικών συστημάτων. Τα βήματα που παρέχονται εδώ θα λειτουργήσουν εφόσον διαθέτετε τις επαρκείς εκδόσεις Plesk και OpenSSL. Θα περιγράψω αυτές τις απαιτήσεις στο "Βήμα 1: Έλεγχος απαιτήσεων".
Θα πρέπει να λάβετε υπόψη ότι πολλά προγράμματα περιήγησης θα υποστηρίζουν το HTTP/2 για τον ιστότοπό σας μόνο εάν χρησιμοποιείτε πιστοποιητικό SSL. Όταν δεν χρησιμοποιείται πιστοποιητικό SSL, το περιεχόμενο δεν θα προβάλλεται μέσω HTTP/2. Ευτυχώς, υπάρχουν πολλοί τρόποι για να αποκτήσετε ένα πιστοποιητικό SSL. Εάν ενδιαφέρεστε να αποκτήσετε ένα πιστοποιητικό Let's Encrypt, ρίξτε μια ματιά σε αυτόν τον οδηγό για τη δημιουργία ενός στο Plesk: Let's Encrypt στο Plesk .
Παρόλο που υπάρχει μεγάλη πιθανότητα να μπορείτε να ενεργοποιήσετε το HTTP/2 χωρίς να το αντιληφθούν οι χρήστες ή οι επισκέπτες σας (και χωρίς χρόνο διακοπής λειτουργίας), θα πρέπει να ανακοινώσετε αυτήν τη συντήρηση. Σε περίπτωση που η σουίτα κρυπτογράφησης SSL δεν έχει ρυθμιστεί σωστά, ενδέχεται να υπάρξει κάποια διακοπή λειτουργίας. Ευτυχώς, είναι πολύ εύκολο να επαναφέρετε τις αλλαγές χρησιμοποιώντας το ενσωματωμένο εργαλείο της Plesk.
Θα πρέπει να είστε απολύτως βέβαιοι ότι δεν έχουν γίνει άμεσες αλλαγές στα αρχεία διαμόρφωσης, καθώς θα αντικαταστήσουμε ορισμένα αρχεία διαμόρφωσης. Δεν υπάρχει τίποτα να ανησυχείτε σε περίπτωση που έχετε κάνει αποκλειστικά αλλαγές χρησιμοποιώντας υποστηριζόμενες μεθόδους (σε προσαρμοσμένα αρχεία), ωστόσο.
Εάν είναι δυνατόν, θα πρέπει να περιστρέψετε έναν άλλο διακομιστή cloud Vultr με μια απλή εγκατάσταση Plesk και να εκτελέσετε τις παρακάτω εντολές. Στη συνέχεια, με βάση την επιτυχία (ή την αποτυχία του), μπορείτε να λάβετε μέτρα για τον άμεσο εντοπισμό σφαλμάτων και/ή την επίλυση τυχόν προβλημάτων που ενδέχεται να προκύψουν σε μελλοντικές αναπτύξεις HTTP/2 σε διακομιστές παραγωγής που χρησιμοποιούνται αυτήν τη στιγμή.
Ενεργοποίηση HTTP/2
Βήμα 1: Έλεγχος απαιτήσεων
Εκτός από το κουτί, μπορείτε να ενεργοποιήσετε την υποστήριξη HTTP/2 για τον αντίστροφο διακομιστή μεσολάβησης που αναπτύχθηκε το Plesk. Σε περίπτωση που δεν είστε βέβαιοι εάν ο διακομιστής σας χρησιμοποιεί αντίστροφο διακομιστή μεσολάβησης, θα πρέπει να ελέγξετε το "Service Monitor". Εάν βλέπετε τόσο το Apache όσο και το Nginx να αναφέρονται εκεί, είναι ασφαλές να υποθέσετε ότι η εγκατάστασή σας χρησιμοποιεί αυτήν τη στιγμή έναν αντίστροφο διακομιστή μεσολάβησης. Εάν βλέπετε μόνο Apache ή μόνο Nginx, πιθανότατα θα χρησιμοποιείτε έναν μόνο διακομιστή ιστού.
Στον πυρήνα, υπάρχει μια συγκεκριμένη απαίτηση που είναι απολύτως απαραίτητη για να λειτουργήσει το HTTP/2, η οποία είναι μια έκδοση OpenSSL με υποστήριξη ALPN.
Ωστόσο, εάν έχετε εγκατεστημένη την έκδοση Plesk 12.5.30 ή νεότερη σε CentOS / RHEL 7, Ubuntu 14.04, Debian 8 ή μεταγενέστερη έκδοση, το Nginx αναπτύσσεται με υποστήριξη ALPN out-of-the-box.
Εάν έχετε παλαιότερη έκδοση Plesk ή λειτουργικού συστήματος, θα μπορούσατε να αναβαθμίσετε ορισμένα πακέτα. Ωστόσο, δεν το υποστηρίζω ούτε το τεκμηριώνω. Αυτές οι εκδόσεις και τα λειτουργικά συστήματα είναι πολύ παλιά και η καλύτερη πρακτική θα ήταν να τα ενημερώσετε. Λάβετε υπόψη τους κινδύνους ασφαλείας από τη χρήση απαρχαιωμένου λογισμικού επίσης.
Δεν υπάρχει έγγραφο που να αναφέρει ρητά ποια λειτουργικά συστήματα και εκδόσεις είναι συμβατά με το HTTP/2 στο Plesk. Ωστόσο, εάν χρησιμοποιείτε την πιο πρόσφατη έκδοση (τη στιγμή που δημοσιεύτηκε αυτός ο οδηγός), θα πρέπει να πληροίτε τις απαιτήσεις. Μπορείτε να υποθέσετε με ασφάλεια ότι παλαιότερα λειτουργικά συστήματα όπως το CentOS / RHEL 5 δεν θα είναι συμβατά.
Εκτός από τις απαιτήσεις έκδοσης OpenSSL, σημειώστε ότι το Apache δεν χρειάζεται απαραίτητα να είναι συμβατό και με το HTTP/2. Η υποστήριξη HTTP/2 για το Apache είναι διαθέσιμη από την έκδοση 2.4.17, αλλά σε περίπτωση που χρησιμοποιείτε έναν αντίστροφο διακομιστή μεσολάβησης (που είναι η προεπιλεγμένη ρύθμιση στο Plesk), αρκεί μόνο η έκδοση Nginx. Ο διακομιστής υποστήριξης, ο Apache, δεν θα έπρεπε να είναι συμβατός. Μπορείτε να συμβουλευτείτε το "Service Manager" στο Plesk για να βεβαιωθείτε ότι χρησιμοποιείτε αντίστροφο διακομιστή μεσολάβησης. Όταν το Nginx παρατίθεται εκεί, είναι ασφαλές να υποθέσουμε ότι το Apache και το Nginx είναι εγκατεστημένα ως εγκατάσταση αντίστροφου διακομιστή μεσολάβησης όπου ο Nginx λειτουργεί ως διακομιστής frontend.
Η ακόλουθη εντολή δείχνει εάν το Nginx έχει ενεργοποιηθεί ή όχι.
/usr/local/psa/admin/bin/nginxmng -s
Για το OpenSSL, θα πρέπει να έχετε τουλάχιστον την έκδοση 1.0.1. Μπορείτε να ελέγξετε χρησιμοποιώντας την ακόλουθη εντολή:
rpm -qa | grep openssl
Αυτό θα εκτυπώσει μια έκδοση παρόμοια με:
openssl-1.0.1e-42.el6_7.4.x86_64
Εάν η έκδοση OpenSSL δεν είναι ίση ή μεγαλύτερη από 1.0.1, θα πρέπει να ενημερώσετε το λειτουργικό σας σύστημα. Το Plesk που αναπτύσσεται σε νεότερα λειτουργικά συστήματα θα κάνει χρήση του OpenSSL 1.0.1 εξαρχής.
Βήμα 2: Ενεργοποίηση HTTP/2 στο Plesk
Ανάλογα με το λειτουργικό σύστημα που χρησιμοποιείται, ενεργοποιήστε το HTTP/2 χρησιμοποιώντας το http2_prefεργαλείο. Αυτή η εντολή πρέπει να εκτελεστεί ως root.
Ενεργοποίηση HTTP/2 σε CentOS / RHEL
Εκτέλεση: /usr/local/psa/bin/http2_pref enable
Ενεργοποίηση HTTP/2 σε Ubuntu / Debian
Εκτέλεση: /opt/psa/bin/http2_pref enable
Βήμα 3: Βελτίωση της σουίτας κρυπτογράφησης
Η χρήση μιας καλής σουίτας κρυπτογράφησης είναι απίστευτα σημαντική για την ασφάλεια. Η υποστήριξη απαρχαιωμένων πρωτοκόλλων θα καταργήσει αποτελεσματικά την επίδραση των μέτρων ασφαλείας σας. Φροντίστε να προσαρμόσετε τα διαθέσιμα πρωτόκολλα και τις διαθέσιμες εκδόσεις TLS χρησιμοποιώντας το ενσωματωμένο εργαλείο Plesk sslmng.
Για παράδειγμα, η ενεργοποίηση των παρακάτω κρυπτογράφησης και εκδόσεων TLS θα διασφαλίσει τη συμβατότητα με το HTTP/2. Εάν δεν είστε βέβαιοι για τους κρυπτογράφησης και τις εκδόσεις που πρέπει να ενεργοποιήσετε, τότε μείνετε στις ακόλουθες ρυθμίσεις:
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"
Αυτή η εντολή τροποποιεί /etc/nginx/conf.d/ssl.conf. Μπορείτε να τροποποιήσετε αυτό το αρχείο απευθείας, αλλά χρησιμοποιώντας την εντολή που αναφέρεται παραπάνω θα συνεχιστούν οι αλλαγές στις ενημερώσεις του Plesk.
Για να λάβετε "Τέλεια εμπρόθεσμη μυστικότητα" χρησιμοποιώντας μια άλλη σουίτα κρυπτογράφησης, μπορείτε να δοκιμάσετε τους ακόλουθους κρυπτογράφησης:
ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
Υπάρχουν πολλές διαθέσιμες σουίτες κρυπτογράφησης και θα πρέπει να επιλέξετε αυτή που ταιριάζει καλύτερα στις ανάγκες σας. Θα πρέπει να συμβουλευτείτε έναν ιστότοπο όπως το Cipherli.st για να συγκεντρώσετε μια σουίτα κρυπτογράφησης που ταιριάζει στις ανάγκες σας. Καθορίζοντας το στο sslmngεργαλείο, η σουίτα κρυπτογράφησης θα χρησιμοποιηθεί αμέσως.
Για να ελέγξετε την υποστήριξη TLS του προγράμματος περιήγησής σας ως πελάτη, χρησιμοποιήστε το εργαλείο Qualys SSL . Όταν δεν επιτρέπετε επαρκείς κρυπτογράφηση ή εκδόσεις TLS, ορισμένοι ιστότοποι ενδέχεται να μην είναι προσβάσιμοι.
Βήμα 4: Έλεγχος συμβατότητας HTTP/2
Αφού ενεργοποιήσετε το HTTP/2, θα πρέπει να ελέγξετε εάν οι ιστότοποι και ο διακομιστής ιστού σας είναι προσβάσιμοι μέσω HTTP/2. Υπάρχει ένα πολύ εύχρηστο εργαλείο που βασίζεται στον ιστό για αυτό: HTTP/2 Test .
Για να λάβετε ένα ακριβές αποτέλεσμα, βεβαιωθείτε ότι έχετε απενεργοποιήσει όλους τους αντίστροφους διακομιστή μεσολάβησης που βρίσκονται μπροστά από τον διακομιστή σας. Για παράδειγμα, εάν χρησιμοποιείτε ένα CDN που δεν υποστηρίζει HTTP/2, το εργαλείο δοκιμών θα επιστρέψει ότι ο ιστότοπός σας δεν υποστηρίζει το HTTP/2 ακόμα κι αν έχει ενεργοποιηθεί με επιτυχία σε επίπεδο διακομιστή. Όπως ακριβώς και το αντίστροφο: εάν έχετε έναν αντίστροφο διακομιστή μεσολάβησης όπως το Cloudflare μπροστά από τον ιστότοπό σας (που υποστηρίζει HTTP/2), το εργαλείο θα επιστρέφει πάντα το HTTP/2 ως ενεργοποιημένο και λειτουργεί, ανεξάρτητα από τη λειτουργικότητά του σε επίπεδο διακομιστή .
Εάν ορισμένα προγράμματα περιήγησης αρνούνται να φορτώσουν τους ιστότοπούς σας ή να προβάλουν περιεχόμενο από τον διακομιστή ιστού σας μετά την ενεργοποίηση του HTTP/2, θα πρέπει να αναλύσετε τη ρύθμιση SSL χρησιμοποιώντας το εργαλείο SSL της Qualys .
(Προαιρετικό) Επαναφορά διαμόρφωσης HTTP/2
Εάν χρειάζεται, εάν χρειάζεστε χρόνο για τον εντοπισμό σφαλμάτων, μπορείτε (προσωρινά) να απενεργοποιήσετε το HTTP/2 απλά εκτελώντας την παρακάτω εντολή. Μόλις θέλετε να ενεργοποιήσετε ξανά το HTTP/2, απλώς εκτελέστε την εντολή για την ενεργοποίησή του και προσπαθήστε ξανά να μεταβείτε σε οποιονδήποτε από τους ιστότοπούς σας. Δεν υπάρχει τρόπος να ενεργοποιήσετε ή να απενεργοποιήσετε το HTTP/2 για συγκεκριμένους τομείς ή ιστότοπους. είναι μια ρύθμιση σε όλο τον διακομιστή.
Απενεργοποίηση HTTP/2 σε CentOS / RHEL
Εκτέλεση: /usr/local/psa/bin/http2_pref disable
Απενεργοποίηση HTTP/2 σε Ubuntu / Debian
Εκτέλεση: /opt/psa/bin/http2_pref disable
Αντιμετώπιση προβλημάτων
Λαμβάνοντας υπόψη τα πολλά στοιχεία ενός διακομιστή που εμπλέκονται στην ενεργοποίηση του HTTP/2, σε ορισμένες περιπτώσεις μπορεί να χρειαστεί να αντιμετωπίσετε προβλήματα όταν οι ιστότοποι δεν φορτώνονται σωστά ή καθόλου μετά την ενεργοποίηση της υποστήριξης HTTP/2.
Σημείωση: βεβαιωθείτε ότι δεν έχετε απενεργοποιήσει την υποστήριξη HTTP/2 χρησιμοποιώντας το http2_prefεργαλείο όταν ακολουθείτε αυτά τα βήματα.
Ελέγξτε τις απαιτήσεις
Αρχικά, βεβαιωθείτε ότι πληροίτε τις απαιτήσεις που περιγράφονται στην αρχή αυτού του άρθρου.
Δημιουργήστε ξανά τη διαμόρφωση Nginx
Εάν πληροίτε τις απαιτήσεις για το HTTP/2, μπορείτε να προσπαθήσετε να αναδημιουργήσετε τα αρχεία διαμόρφωσης Nginx. Θα πρέπει να γνωρίζετε ότι αυτό θα καταργήσει τυχόν προσαρμοσμένες διαμορφώσεις, επομένως δημιουργήστε ένα αντίγραφο ασφαλείας του καταλόγου διαμόρφωσης Nginx εκ των προτέρων. Καθώς τα αρχεία διαμόρφωσης μπορούν να διαδοθούν σε ολόκληρο τον διακομιστή, είναι καλύτερο να δημιουργήσετε απλώς ένα στιγμιότυπο ή να δημιουργήσετε ένα αντίγραφο ασφαλείας. Στη συνέχεια, εκτελέστε αυτήν την εντολή:
/usr/local/psa/admin/bin/httpdmng --reconfigure-all
Ελέγξτε ξανά τη σουίτα κρυπτογράφησης
Αν και αυτό δεν έχει κανένα αποτέλεσμα, πιθανότατα φταίει η σουίτα κρυπτογράφησης. Εκτελέστε ξανά την ακόλουθη εντολή:
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"
Σφάλμα σε panel.ini
Βεβαιωθείτε ότι το αρχείο /usr/local/psa/admin/conf/panel.iniπεριέχει το ακόλουθο περιεχόμενο:
[webserver]
nginxHttp2 = true
Μπορείτε να ελέγξετε αν το αρχείο περιέχει αυτό γρήγορα εκτελώντας: cat /usr/local/psa/admin/conf/panel.ini | grep nginxHttp2
Αυτή η εντολή δεν επιστρέφει τίποτα; Τότε πιθανότατα, το αρχείο είναι μόνο για ανάγνωση, για παράδειγμα λόγω ενός chattrχαρακτηριστικού. Μπορεί να έχει προστεθεί όταν http2_prefεκτελέστηκε η εντολή (για ενεργοποίηση HTTP/2).
Ελέγξτε εάν χρησιμοποιείται SSL
Όταν ένας ιστότοπος δεν χρησιμοποιεί SSL, θα επιστρέψει στο HTTP/1.1. Μόνο οι ιστότοποι που χρησιμοποιούν SSL θα εξυπηρετούνται με χρήση HTTP/2. Βεβαιωθείτε ότι δεν επιβάλλετε το HTTP/2 τοπικά σε όλες τις περιπτώσεις, γιατί αυτό δεν θα λειτουργήσει και δεν είναι πρόβλημα διακομιστή.
Αλλες επιλογές
Εάν δεν λειτουργήσει ούτε αυτό, θα πρέπει να συμβουλευτείτε έναν ειδικό της Plesk, για παράδειγμα στα φόρουμ του Plesk. Ωστόσο, σε πολλές περιπτώσεις, τα παραπάνω βήματα θα διορθώσουν τα περισσότερα προβλήματα.
Ένα τελευταίο μέτρο που μπορείτε να κάνετε είναι απλώς να κάνετε επανεκκίνηση του διακομιστή. Σε ορισμένες περίεργες περιπτώσεις, αυτό έχει διορθώσει τα προβλήματα από το μπλε. Ωστόσο, θα πρέπει πάντα να μπορείτε να εντοπίζετε προβλήματα για να αποτρέψετε (ξαφνικά) να ξανασυμβούν.
Αυτό ολοκληρώνει τον οδηγό μου, σας ευχαριστώ που διαβάσατε.