Vyhledávání na webu

Jak povolit TLS 1.3 v Apache a Nginx


TLS 1.3 je nejnovější verze protokolu Transport Layer Security (TLS) a je založena na stávajících specifikacích 1.2 se správným standardem IETF: RFC 8446. Oproti svým předchůdcům poskytuje silnější zabezpečení a vyšší výkon.

V tomto článku vám krok za krokem ukážeme, jak získat platný certifikát TLS a aktivovat protokol nejnovější verze TLS 1.3 ve vaší doméně hostované na Apache nebo Webové servery Nginx.

Požadavky:

  • Apache verze 2.4.37 nebo vyšší.
  • Nginx verze 1.13.0 nebo vyšší.
  • OpenSSL verze 1.1.1 nebo vyšší.
  • Platný název domény se správně nakonfigurovanými záznamy DNS.
  • Platný certifikát TLS.

Nainstalujte certifikát TLS z Let’s Encrypt

Chcete-li zdarma získat Certifikát SSL od Let’s Encrypt, musíte nainstalovat klienta Acme.sh a také několik potřebných balíčků na systém Linux, jak je znázorněno.


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

POZNÁMKA: Nahraďte example.com ve výše uvedeném příkazu svým skutečným názvem domény.

Po instalaci certifikátu SSL můžete pokračovat a aktivovat TLS 1.3 ve své doméně, jak je vysvětleno níže.

Povolte TLS 1.3 na Nginx

Jak jsem uvedl v požadavcích výše, TLS 1.3 je podporováno od verze Nginx 1.13. Pokud používáte starší verzi Nginx, musíte nejprve upgradovat na nejnovější verzi.


apt install nginx
yum install nginx

Zkontrolujte verzi Nginx a verzi OpenSSL, proti které byl Nginx zkompilován (ujistěte se, že verze nginx je alespoň 1.14 a openssl verze 1.1.1).


nginx -V
Ukázkový výstup

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

Nyní spusťte, povolte a ověřte instalaci nginx.


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

Nyní otevřete konfigurační soubor nginx vhost /etc/nginx/conf.d/example.com.conf pomocí svého oblíbeného editoru.


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

a vyhledejte direktivu ssl_protocols a na konec řádku připojte TLSv1.3, jak je znázorněno níže


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

Nakonec ověřte konfiguraci a znovu načtěte Nginx.


nginx -t
systemctl reload nginx.service

Povolte TLS 1.3 v Apache

Počínaje Apache 2.4.37 můžete využívat výhody TLS 1.3. Pokud používáte starší verzi Apache, musíte nejprve upgradovat na nejnovější verzi.


apt install apache2
yum install httpd

Po instalaci můžete ověřit verzi Apache a OpenSSL, proti které byl Apache zkompilován.


httpd -V
openssl version

Nyní spusťte, povolte a ověřte instalaci 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

Nyní otevřete konfigurační soubor virtuálního hostitele Apache pomocí svého oblíbeného editoru.


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

a vyhledejte direktivu ssl_protocols a přidejte TLSv1.3 na konec řádku, jak je znázorněno níže.


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

Nakonec ověřte konfiguraci a znovu načtěte Apache.


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

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

Ověřte, zda web používá TLS 1.3

Jakmile provedete konfiguraci prostřednictvím webového serveru, můžete pomocí vývojových nástrojů prohlížeče Chrome ve verzi Chrome 70+ zkontrolovat, zda váš web provádí handshaking přes protokol TLS 1.3.

To je vše. Úspěšně jste povolili protokol TLS 1.3 na vaší doméně hostované na webových serverech Apache nebo Nginx. Pokud máte nějaké dotazy k tomuto článku, neváhejte se zeptat v sekci komentářů níže.