Weboldal keresés

A TLS 1.3 engedélyezése Apache és Nginx rendszerben


A TLS 1.3 a Transport Layer Security (TLS) protokoll legújabb verziója, és a meglévő 1.2-es specifikációkon alapul, megfelelő IETF-szabvánnyal: RFC 8446. Erősebb biztonságot és nagyobb teljesítményt nyújt elődeihez képest.

Ebben a cikkben lépésről lépésre mutatunk be egy érvényes TLS-tanúsítvány megszerzéséhez és a legújabb TLS 1.3 verziójú protokoll engedélyezéséhez az Apache vagy tárhelyen tárolt domainjén. Nginx webszerverek.

Követelmények:

  • Apache 2.4.37 vagy újabb verzió.
  • Nginx 1.13.0 vagy újabb verzió.
  • OpenSSL 1.1.1 vagy újabb verzió.
  • Érvényes tartománynév megfelelően konfigurált DNS-rekordokkal.
  • Érvényes TLS-tanúsítvány.

Telepítse a Let’s Encrypt TLS-tanúsítványát

Ha ingyenes SSL-tanúsítványt szeretne szerezni a Let's Encrypt-től, telepítenie kell az Acme.sh klienst, valamint néhány szükséges csomagot Linux rendszeren, amint az ábra mutatja.


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

MEGJEGYZÉS: Cserélje ki a example.com címet a fenti parancsban a valódi domain nevére.

Miután telepítette az SSL-tanúsítványt, folytathatja a TLS 1.3 engedélyezését domainjén az alábbiak szerint.

Engedélyezze a TLS 1.3-at az Nginx rendszeren

Ahogy a fenti követelményekben említettem, a TLS 1.3 az Nginx 1.13 verziótól kezdve támogatott. Ha a régebbi Nginx verziót futtatja, először frissítenie kell a legújabb verzióra.


apt install nginx
yum install nginx

Ellenőrizze az Nginx és az OpenSSL verziót, amelyek alapján az Nginxet lefordították (győződjön meg arról, hogy az nginx verzió legalább 1.14 és openssl verzió 1.1.1).


nginx -V
Minta kimenet

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
....

Most indítsa el, engedélyezze és ellenőrizze az nginx telepítését.


systemctl start nginx.service
systemctl enable nginx.service
systemctl status nginx.service

Most nyissa meg az nginx vhost konfigurációs /etc/nginx/conf.d/example.com.conf fájlt kedvenc szerkesztője segítségével.


vi /etc/nginx/conf.d/example.com.conf

és keresse meg az ssl_protocols direktívát, és fűzze hozzá a TLSv1.3 kódot a sor végéhez az alábbiak szerint


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;
}

Végül ellenőrizze a konfigurációt, és töltse be újra az Nginxet.


nginx -t
systemctl reload nginx.service

Engedélyezze a TLS 1.3-at az Apache-ban

Az Apache 2.4.37 verziótól kezdve kihasználhatja a TLS 1.3 előnyeit. Ha az Apache régebbi verzióját használja, először frissítenie kell a legújabb verzióra.


apt install apache2
yum install httpd

A telepítés után ellenőrizheti az Apache és az OpenSSL verziót, amelyre az Apache le lett fordítva.


httpd -V
openssl version

Most indítsa el, engedélyezze és ellenőrizze az nginx telepítését.


-------------- 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

Most nyissa meg az Apache virtuális gazdagép konfigurációs fájlját kedvenc szerkesztője segítségével.


vi /etc/httpd/conf.d/vhost.conf
OR
vi /etc/apache2/apache2.conf

és keresse meg az ssl_protocols direktívát, és fűzze hozzá a TLSv1.3 kódot a sor végéhez az alábbiak szerint.


<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>

Végül ellenőrizze a konfigurációt, és töltse be újra az Apache-t.


-------------- On Debian/Ubuntu -------------- 
apache2 -t
systemctl reload apache2.service

-------------- On RHEL/CentOS/Fedora --------------
httpd -t
systemctl reload httpd.service

Ellenőrizze, hogy a webhely TLS 1.3-at használ

Miután elvégezte a konfigurálást egy webszerveren keresztül, a Chrome 70+ verziójú Chrome böngésző fejlesztői eszközeivel ellenőrizheti, hogy webhelye kézfogásban van-e a TLS 1.3 protokollon.

Ez minden. Sikeresen engedélyezte a TLS 1.3 protokollt az Apache vagy Nginx webszervereken tárolt domainjén. Ha kérdése van ezzel a cikkel kapcsolatban, nyugodtan tegye fel az alábbi megjegyzés részben.