Πώς να ενεργοποιήσετε το TLS 1.3 σε Apache και Nginx
Το TLS 1.3 είναι η πιο πρόσφατη έκδοση του πρωτοκόλλου Transport Layer Security (TLS) και βασίζεται στις υπάρχουσες προδιαγραφές 1.2 με το κατάλληλο πρότυπο IETF: RFC 8446. Παρέχει ισχυρότερη ασφάλεια και υψηλότερες βελτιώσεις απόδοσης σε σχέση με τους προκατόχους του.
Σε αυτό το άρθρο, θα σας δείξουμε έναν οδηγό βήμα προς βήμα για να αποκτήσετε ένα έγκυρο πιστοποιητικό TLS και να ενεργοποιήσετε το πιο πρόσφατο πρωτόκολλο έκδοσης TLS 1.3 στον τομέα σας που φιλοξενείται σε Apache ή Διακομιστές ιστού Nginx.
Απαιτήσεις:
- Apache έκδοση 2.4.37 ή μεταγενέστερη.
- Nginx έκδοση 1.13.0 ή νεότερη.
- OpenSSL έκδοση 1.1.1 ή νεότερη.
- Ένα έγκυρο όνομα τομέα με σωστά διαμορφωμένες εγγραφές DNS.
- Ένα έγκυρο πιστοποιητικό TLS.
Εγκαταστήστε το πιστοποιητικό TLS από το Let’s Encrypt
Για να αποκτήσετε ένα δωρεάν Πιστοποιητικό SSL από το Let’s Encrypt, πρέπει να εγκαταστήσετε το πρόγραμμα-πελάτη Acme.sh και επίσης μερικά απαραίτητα πακέτα στο σύστημα Linux, όπως φαίνεται.
apt install -y socat git [On Debian/Ubuntu]
dnf install -y socat git [On RHEL/CentOS/Fedora]
mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --home /etc/letsencrypt --accountemail [email
cd ~
/etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength 2048
/etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength ec-256
ΣΗΜΕΙΩΣΗ: Αντικαταστήστε το example.com
στην παραπάνω εντολή με το πραγματικό σας όνομα τομέα.
Αφού εγκαταστήσετε το πιστοποιητικό SSL, μπορείτε να προχωρήσετε περαιτέρω για να ενεργοποιήσετε το TLS 1.3 στον τομέα σας, όπως εξηγείται παρακάτω.
Ενεργοποιήστε το TLS 1.3 στο Nginx
Όπως ανέφερα στις παραπάνω απαιτήσεις, ότι το TLS 1.3 υποστηρίζεται ξεκινώντας από την έκδοση Nginx 1.13. Εάν χρησιμοποιείτε την παλαιότερη έκδοση Nginx, πρέπει πρώτα να κάνετε αναβάθμιση στην πιο πρόσφατη έκδοση.
apt install nginx
yum install nginx
Ελέγξτε την έκδοση Nginx και την έκδοση OpenSSL με την οποία έγινε μεταγλώττιση του Nginx (βεβαιωθείτε ότι η έκδοση nginx είναι τουλάχιστον 1.14 ισχυρή> και openssl έκδοση 1.1.1).
nginx -V
Δείγμα εξόδου
nginx version: nginx/1.14.1
built by gcc 8.2.1 20180905 (Red Hat 8.2.1-3) (GCC)
built with OpenSSL 1.1.1 FIPS 11 Sep 2018
TLS SNI support enabled
....
Τώρα ξεκινήστε, ενεργοποιήστε και επαληθεύστε την εγκατάσταση του nginx.
systemctl start nginx.service
systemctl enable nginx.service
systemctl status nginx.service
Τώρα ανοίξτε το αρχείο διαμόρφωσης nginx vhost /etc/nginx/conf.d/example.com.conf
χρησιμοποιώντας τον αγαπημένο σας επεξεργαστή.
vi /etc/nginx/conf.d/example.com.conf
και εντοπίστε την οδηγία ssl_protocols
και προσθέστε το TLSv1.3 στο τέλος της γραμμής όπως φαίνεται παρακάτω
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
}
Τέλος, επαληθεύστε τη διαμόρφωση και φορτώστε ξανά το Nginx.
nginx -t
systemctl reload nginx.service
Ενεργοποιήστε το TLS 1.3 σε Apache
Ξεκινώντας από το Apache 2.4.37, μπορείτε να επωφεληθείτε από το TLS 1.3. Εάν χρησιμοποιείτε την παλαιότερη έκδοση του Apache, πρέπει πρώτα να κάνετε αναβάθμιση στην πιο πρόσφατη έκδοση.
apt install apache2
yum install httpd
Μόλις εγκατασταθεί, μπορείτε να επαληθεύσετε τον Apache και την έκδοση OpenSSL έναντι των οποίων έγινε μεταγλώττιση του Apache.
httpd -V
openssl version
Τώρα ξεκινήστε, ενεργοποιήστε και επαληθεύστε την εγκατάσταση του nginx.
-------------- On Debian/Ubuntu --------------
systemctl start apache2.service
systemctl enable apache2.service
systemctl status apache2.service
-------------- On RHEL/CentOS/Fedora --------------
systemctl start httpd.service
systemctl enable httpd.service
systemctl status httpd.service
Τώρα ανοίξτε το αρχείο διαμόρφωσης εικονικού κεντρικού υπολογιστή Apache χρησιμοποιώντας τον αγαπημένο σας επεξεργαστή.
vi /etc/httpd/conf.d/vhost.conf
OR
vi /etc/apache2/apache2.conf
και εντοπίστε την οδηγία ssl_protocols
και προσθέστε το TLSv1.3 στο τέλος της γραμμής όπως φαίνεται παρακάτω.
<VirtualHost *:443>
SSLEngine On
RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
ServerAdmin [email
ServerName www.example.com
ServerAlias example.com
#DocumentRoot /data/httpd/htdocs/example.com/
DocumentRoot /data/httpd/htdocs/example_hueman/
# Log file locations
LogLevel warn
ErrorLog /var/log/httpd/example.com/httpserror.log
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/example.com/httpsaccess.log.%Y-%m-%d 86400" combined
</VirtualHost>
Τέλος, επαληθεύστε τη διαμόρφωση και φορτώστε ξανά το Apache.
-------------- On Debian/Ubuntu --------------
apache2 -t
systemctl reload apache2.service
-------------- On RHEL/CentOS/Fedora --------------
httpd -t
systemctl reload httpd.service
Επαληθεύστε ότι ο ιστότοπος χρησιμοποιεί TLS 1.3
Αφού ρυθμίσετε τις παραμέτρους μέσω ενός διακομιστή ιστού, μπορείτε να ελέγξετε ότι ο ιστότοπός σας κάνει χειραψία μέσω του πρωτοκόλλου TLS 1.3 χρησιμοποιώντας τα εργαλεία ανάπτυξης του προγράμματος περιήγησης chrome στην έκδοση Chrome 70+.
Αυτό είναι όλο. Έχετε ενεργοποιήσει με επιτυχία το πρωτόκολλο TLS 1.3 στον τομέα σας που φιλοξενείται σε διακομιστές ιστού Apache ή Nginx. Εάν έχετε οποιεσδήποτε απορίες σχετικά με αυτό το άρθρο, μη διστάσετε να ρωτήσετε στην ενότητα σχολίων παρακάτω.