Hogyan aktiválható a TLSv1.3 az NGINX-en? VestaCP / CentOS vagy Ubuntu

Ebből az oktatóanyagból megtudhatja, hogyan lehetővé TLSv1.3 NGINX rendszeren. Mit jelent TLSv 1.3, mit segít és miért szükséged van a webszerveren mint TLS aktiválható. Menedzsment rendszerrel rendelkező szerverekhez VestaCP (CentOS vagy Ubuntu) egy kicsit nehezebb aktiválni TLS 1.3 mint egy cPanel szerveren, de nem lehetetlen.

Miért jobb TLS 1.3 mint TLS 1.2?

TLS (Transport Layer Security) egy kriptográfiai protokoll amely biztosítja kapcsolat biztonsága a számítógép és egy olyan hálózat között, amelynek része. TLS olyan alkalmazásokban használják, mint: email, Üzenetkezelés, hang- és videohívások (VoIP), de különösen a HTTPS. Biztonságos kommunikáció biztosítása a felhasználó számítógépe vagy okostelefonja és az elért oldal webszervere között.

TLS 1.3 kínál a nagyobb sebesség kliens – szerver és a Továbbá a biztonsági egyes algoritmusok kiiktatásával. A különbségek között TLSv1.2 és TLSv1.3.

körülbelül HTTPS, SSL (Secure Sockets Layer) Más cikkekben is mondtam:

Hogyan aktiválható a TLS 1.3 az NGINX-en? Szerver VestaCP kezeléssel / CentOS

Mielőtt látná, hogyan aktiválja TLSv1.3 NGINX rendszeren, figyelembe kell vennie néhány minimális követelményt TLS 1.3.

  1. NGINX 1.13.x vagy újabb
  2. Tanusítvány TLS érvényes
  3. Aktív tartománynév megfelelően konfigurált DNS-sel – legyen elérhető az interneten
  4. Tanusítvány TLS / SSL érvényes. Az is lehet Let’s Encrypt.

Pe VestaCP régen telepítve, csak a protokoll áll rendelkezésünkre TLS 1.2. Sok oktatóanyagban láttam, hogy elég, mint amilyen nginx.conf adjuk hozzá a következő sort kb TLS 1.3 aktiválandó:

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;

Hamisítvány. Ha szerver CentOS vezetéssel VestaCP, Az NGINX-et még nem fordították le a minimális verzióval OpenSSL 1.1.1.1, ssl_protocols TLSv1.2 TLSv1.3; ban ben nginx.conf .. egyáltalán nem segít.

[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

Tehát a fenti példában az Nginx 1.22.0 kompatibilis verziója TLS 1.3, de a könyvtár nem segít nekünk OpenSSL 1.0.2k-fips.

Aktiválni TLSv1.3 az Nginx rendszeren, először telepítenie kell a gyermekkönyvtárakat és a fejlesztői csomagokat. Development Tools. Befut CentOS 7 parancssor:

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. Telepítse a legújabb verziót OpenSSL

Jelenleg a legújabb verzió OpenSSL 1.1.1p, de amennyire én észrevettem van már és OpenSSL 3. A forrásokat itt találja 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 

Nagyon fontos futni make test a könyvtár telepítése előtt. Ha a teszt hibás, ne futtassa make install amíg a hibákat ki nem javítják.

A következő lépésben biztonsági másolatot készítünk az aktuális bináris fájlról openssl és hozzátesszük symlink az újhoz.

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

-ban /usr/local/openssl/bin végrehajtani ldd a függőségek ellenőrzésére openssl. Esetleg a verzióját is ellenőrizhetjük openssl. Parancs 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

Jelenleg a legújabb verzió van telepítve OpenSSL amely elviseli TLSv1.3. Ellenőrizhetjük a verziókat TLS / SSL könyvesboltok támogatják OpenSSL megrendelésre:

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

Ez nem jelenti azt, hogy a webhelyeket a menedzser segítségével tárolják VestaCP azonnal meglesznek TLS 1.3.

Bár telepítettük OpenSSL 1.1.1p, Az Nginx a régi verzióval van fordítva 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. Fordítsa újra az Nginxet a rendszerhez VestaCP

Ebben a lépésben újra kell fordítanunk OpenSSL az Nginx már telepített verziója a rendszeren CentOS / VestaCP. Ahogy fentebb is mondtam, az én esetemben kb nginx/1.22.0. Mivel olyan webszerverről beszélünk, amelyik rendelkezik VestaCP az adminisztrációs rendszerben, mielőtt újrafordítani kezdenénk, érdemes biztonsági másolatot készíteni az nginx konfigurációs fájljairól.

Biztonsági mentés az Nginx áramról a rendszeren VestaCP

Archiválja és tartsa valahol a szerveren a könyvtárakat "/etc/nginx"és"/usr/local/vesta/nginx".

FUSS nginx -V és mentse a meglévő modulokat egy fájlba.

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'
Hogyan aktiválod? TLSv1.3 NGINX rendszeren
Hogyan lehet aktiválni? TLSv1.3 NGINX rendszeren

Az Nginx újrafordítása frissítéshez OpenSSL / CentOS 7

Ismétlem. Ha van VestaCP, töltse le az Nginx már telepített verzióját. Az összes olyan archívumot megtalálja, amelyen az Nginx verziók vannak 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

Újrafordítjuk az nginx modulokat:

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

Az Nginx most már telepítve van, és a legújabb verziójával lefordítva OpenSSL képes ellenállni 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

*ha az nginx már telepítve volt a szerveren, akkor el kell távolítania. A fordítás nem működik nginx frissítéskor.

Hogyan aktiválható a TLSv1.3 a VestaCP-ben lévő domainekre?

A fájlban /etc/nginx/nginx.conf a következő sorokkal egészítjük ki:

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

Domain szinten változtattam valamit a sablonokon VestaCP és a HTTP/2 engedélyezéséhez. Tehát amikor új domaint (example.com) adunk hozzá a Let's Encrypt engedélyezésével, a következő konfigurációs fájlom van a 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';

Az nginx újraindítása előtt érdemes először tesztelni a konfigurációját.

[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

Remélem, hasznosnak találja ezt az oktatóanyagot, és ha valami elakad, hagyja meg a probléma részleteit a megjegyzésekben.

Technológiai rajongóként örömmel írok a StealthSettings.com-on 2006 óta. Széles körű tapasztalatom van operációs rendszerekkel: macOS, Windows és Linux, valamint programozási nyelvekkel és blogolási platformokkal (WordPress) és online áruház platformokkal (WooCommerce, Magento, PrestaShop).

Hogyan » Linux » Hogyan aktiválható a TLSv1.3 az NGINX-en? VestaCP / CentOS vagy Ubuntu
Írj hozzászólást