Jak aktivujete TLSV1.3 na ninx. VestACP / CENTOS nebo UBUNTU

V tomto tutoriálu se dozvíte jak activezi TLSv1.3 nebo NGINX. co to znamená TLSv 1.3, co to pomáhá a proč potřebujete na webovém serveru jako TLS lze povolit. Pro servery se systémem správy VestACP (CentOS nebo Ubuntu) je o něco obtížnější pro aktivaci TLS 1.3 než na serveru cPanel, ale není to nemožné.

Proč je TLS 1.3 lepší než TLS 1.2?

TLS (Transport Layer Security) Je to kryptografický protokol která zajišťuje zabezpečení připojení mezi počítačem a sítí, jejíž je součástí. TLS používá se v aplikacích, jako jsou: e-mail, posel, hlasové hovory a videohovory (VoIP), ale zejména při HTTPS. Zajištění bezpečné komunikace mezi počítačem nebo chytrým telefonem uživatele a webovým serverem navštívené stránky.

TLS 1.3 nabízí a vyšší rychlost přihlášení klienta – server a a větší bezpečnost odstraněním některých algoritmů. Rozdíly mezi TLSV1.2 a TLSV1.3.

O HTTPS, SSL (Secure Sockets Layer) Také jsem řekl v jiných článcích:

Jak povolit TLS 1.3 na NGINX. Server se správou VestaCP / CentOS

Než se podíváte na to, jak povolit TLSv1.3 na NGINX, je třeba zvážit některé minimální požadavky TLS 1.3.

  1. NGINX 1.13.x nebo novější
  2. Platný certifikát TLS
  3. Název aktivní domény se správně nakonfigurovaným DNS – být přístupný na internetu
  4. Un certificat TLS / SSL valid. Poate fi și Let’s Encrypt.

Pe VestaCP instalat în urmă cu mult timp, avem la dispozitie doar protocolul TLS 1.2. Am vazut în multe tutoriale că este suficient ca în nginx.conf să adăugăm urmatoarea linie pentru ca TLS 1.3 să fie activat:

server {

  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  server_name example.com;
  root /var/www/example.com/public;

  ssl_certificate /path/to/your/certificate.crt;
  ssl_certificate_key /path/to/your/private.key;

  ssl_protocols TLSv1.2 TLSv1.3;

Fals. Dacă na serveru CentOS cu management VestACP, NGINX nu a fost compilat cu versiunea minimă OpenSSL 1.1.1.1, ssl_protocols TLSv1.2 TLSv1.3; v nginx.conf .. nu ajută cu absolut nimic.

[root@north ~]# nginx -V
nginx version: nginx/1.22.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled

Așdar, în exemplul de mai sus Nginx 1.22.0 este compatibil cu versiunea TLS 1.3, însă nu ne ajută libraria OpenSSL 1.0.2k-fips.

Ca să activezi TLSv1.3 pe Nginx, trebuie să instalezi mai întâi librăriile pentru copilare și pachetele de dezvoltare. Development Tools. Se execută în CentOS 7 liniile de comandă:

yum install gcc gcc-c++ pcre-devel zlib-devel make unzip gd-devel perl-ExtUtils-Embed libxslt-devel openssl-devel perl-Test-Simple
yum groupinstall 'Development Tools'

1. Instalezi cea mai recentă versiune OpenSSL

V tuto chvíli je nejnovější verze OpenSSL 1.1.1p, ale pokud jsem viděl, OpenSSL 3 již existoval. Zdroje najdete na OpenSSL.org.

cd /usr/src
wget https://www.openssl.org/source/openssl-1.1.1p.tar.gz
tar xvf openssl-1.1.1p.tar.gz 
mv openssl-1.1.1p openssl
cd openssl
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --libdir=/lib64 shared zlib-dynamic
make -j4
make test 
make install 

Velmi důležité běžet make test před instalací knihovny. Pokud test obsahuje chyby, nespouštějte jej make install dokud nebudou chyby opraveny.

V dalším kroku provedeme zálohu aktuálního binárního souboru openssl a přidáme symlink do nového.

mv /usr/bin/openssl /usr/bin/openssl-backup
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

V /usr/local/openssl/bin vykonat ldd pro kontrolu závislostí openssl. Můžeme také zkontrolovat verzi openssl. Příkaz openssl version.

[root@north bin]# ldd openssl
	linux-vdso.so.1 =>  (0x00007ffd20bd7000)
	libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007fab09b62000)
	libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007fab09675000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fab09471000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fab09255000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fab08e87000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fab09df5000)
[root@north bin]# openssl version
OpenSSL 1.1.1p  21 Jun 2022

Aktuálně máme nainstalovanou nejnovější verzi OpenSSL která vydrží TLSv1.3. Můžeme zkontrolovat verze TLS / SSL podporované knihkupectvími OpenSSL podle objednávky:

[root@north bin]# openssl ciphers -v | awk '{print $2}' | sort | uniq
SSLv3
TLSv1
TLSv1.2
TLSv1.3
[root@north bin]# 

To neznamená, že weby hostované s pomocí správce VestaCP budou mít okamžitě TLS 1.3.

Přestože jsme nainstalovali OpenSSL 1.1.1p, Nginx je zkompilován se starou verzí OpenSSL 1.0.2k-fips.

[root@north bin]# nginx -V
nginx version: nginx/1.22.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'
[root@north bin]# openssl version
OpenSSL 1.1.1p  21 Jun 2022
[root@north bin]# 

2. Překompilujte Nginx pro systém VestaCP

V tomto kroku musíme provést rekompilaci pro OpenSSL verze Nginx již nainstalována na systému CentOS / VestaCP. Jak jsem uvedl výše, v mém případě jde o nginx/1.22.0. Protože mluvíme o webovém serveru, který má VestaCP administrační systém, než začneme s rekompilací, je dobré si udělat zálohu konfiguračních souborů nginx.

Zálohujte aktuální Nginx v systému VestaCP

Archivujte a uchovávejte adresáře někde na serveru “/etc/nginx” a “/usr/local/vesta/nginx“.

BĚH nginx -V a uložit existující moduly do souboru.

configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'
Jak povolit TLSv1.3 na NGINX
Cum jeho TLSv1.3 papriček

Jak překompilovat Nginx pro upgrade OpenSSL / CentOS 7

opakuji. Pokud máte VestACP, descarcați versiunea de Nginx pe care o aveți deja instalată. Toate arhivele cu versiunile Nginx le găsiti pe nginx.org.

cd /usr/src
wget https://nginx.org/download/nginx-1.22.0.tar.gz 
tar xvf nginx-1.22.0.tar.gz
cd nginx-1.22.0

Recompilăm modulele nginx:

./configure --prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \ 
--modules-path=/usr/lib64/nginx/modules \ 
--conf-path=/etc/nginx/nginx.conf \ 
--error-log-path=/var/log/nginx/error.log  \
--http-log-path=/var/log/nginx/access.log  \
--pid-path=/var/run/nginx.pid  \
--lock-path=/var/run/nginx.lock  \
--http-client-body-temp-path=/var/cache/nginx/client_temp  \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp  \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp  \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp  \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp  \
--user=nginx  \
--group=nginx  \
--with-compat  \
--with-file-aio  \
--with-threads  \
--with-http_addition_module  \
--with-http_auth_request_module  \
--with-http_dav_module  \
--with-http_flv_module  \
--with-http_gunzip_module  \
--with-http_gzip_static_module  \
--with-http_mp4_module  \
--with-http_random_index_module  \
--with-http_realip_module  \
--with-http_secure_link_module  \
--with-http_slice_module  \
--with-http_ssl_module  \
--with-http_stub_status_module  \
--with-http_sub_module  \
--with-http_v2_module  \
--with-mail  \
--with-mail_ssl_module  \
--with-stream  \
--with-stream_realip_module  \
--with-stream_ssl_module  \
--with-stream_ssl_preread_module  \
--with-openssl=/usr/src/openssl  \
--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong  \
--param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC'  \
--with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'
make -j4
make install

Acum avem Nginx instalat și compilat cu cea mai recentă versiune de OpenSSL capabila sa suporte TLSv1.3.

[root@north bin]# nginx -V
nginx version: nginx/1.22.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.1.1p  21 Jun 2022
TLS SNI support enabled

*dacă nginx era deja instalat pe server, va fi nevoie să-l dezinstalți. Compilarea nu funționează la upgrade nginx.

Jak povolit TLSv1.3 pro domény na VestaCP

V souboru /etc/nginx/nginx.conf adăugăm urmatoarele linii:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
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';

La nivel de domenii eu am schimbat ceva în template-urile VestaCP și pentru a activa HTTP/2. Astfel că la adăugarea unui domeniu nou (example.com) cu Let’s Encrypt activat, am următorul fișier de configurare pentru SSL:

cat /home/vestacpuser/conf/web/example.com.nginx.ssl.conf 

server {
    listen      IP.IP.IP.IP:443 ssl http2;
    server_name example.com www.example.com;
    root        /home/vestacpuser/web/example.com/public_html;
    index       index.php index.html index.htm;
    access_log  /var/log/nginx/domains/example.com.log combined;
    access_log  /var/log/nginx/domains/example.com.bytes bytes;
    error_log   /var/log/nginx/domains/example.com.error.log error;

    ssl_certificate      /home/vestacpuser/conf/web/ssl.example.com.pem;
    ssl_certificate_key  /home/vestacpuser/conf/web/ssl.example.com.key;

....

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
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';

Înainte sa restartați nginx, este bine ca înainte să-i testati configurarea.

[root@north web]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@north web]# systemctl restart nginx

Doufám, že vám tento tutoriál pomůže, a pokud se s něčím zaseknete, zanechte podrobnosti o problému v komentářích.

Vášnivý pro technologii, píšu s potěšením na StealthSetts.com počínaje rokem 2006. Mám bohaté zkušenosti s operačními systémy: MacOS, Windows a Linux, ale také v programovacích jazycích a platformách blogů (WordPress) a pro online obchody (WooCommerce, Magento, Presashop).

Home Váš zdroj IT tutoriálů, užitečných tipů a zpráv. Jak aktivujete TLSV1.3 na ninx. VestACP / CENTOS nebo UBUNTU
Zanechat komentář