Πώς να ενεργοποιήσετε το 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. Εάν έχετε οποιεσδήποτε απορίες σχετικά με αυτό το άρθρο, μη διστάσετε να ρωτήσετε στην ενότητα σχολίων παρακάτω.