Kuidas aktiveerida TLSv1.3 NGINX-is? VestaCP / CentOS või Ubuntu

Sellest õpetusest saate teada, kuidas võimaldama TLSv1.3 NGINX-is. Mida see tähendab TLSv 1.3, mis see aitab ja miks sa vajad veebiserveris kui TLS saab aktiveerida. Haldussüsteemiga serveritele VestaCP (CentOS või Ubuntu) on natuke keerulisem aktiveerimiseks TLS 1.3 kui cPaneli serveris, kuid see pole võimatu.

Miks on parem TLS 1.3 kui TLS 1.2?

TLS (Transport Layer Security) on krüptograafiline protokoll mis tagab ühenduse turvalisus arvuti ja võrgu vahel, mille osa see on. TLS seda kasutatakse sellistes rakendustes nagu: e-mail, Sõnumid, hääl- ja videokõned (VoIP), kuid eriti kell HTTPS. Turvalise side tagamine kasutaja arvuti või nutitelefoni ja ligipääsetava lehe veebiserveri vahel.

TLS 1.3 pakub a suurem kiirus kliendi – serveri ja a Lisaks turvalisuse kõrvaldades mõned algoritmid. Erinevused vahel TLSv1.2 ja TLSv1.3.

Umbes HTTPS, SSL (Secure Sockets Layer) Ma ütlesin ka teistes artiklites:

Kuidas aktiveerida TLS 1.3 NGINX-is? Server VestaCP haldusega / CentOS

Enne kui näete, kuidas aktiveerite TLSv1.3 NGINX-i puhul peate arvestama mõningate miinimumnõuetega TLS 1.3.

  1. NGINX 1.13.x või uuem
  2. Sertifikaat TLS kehtiv
  3. Aktiivne domeeninimi õigesti konfigureeritud DNS-iga – olema Internetis juurdepääsetav
  4. Sertifikaat TLS / SSL kehtiv. See võib ka olla Let’s Encrypt.

Pe VestaCP installitud kaua aega tagasi, meil on saadaval ainult protokoll TLS 1.2. Olen näinud paljudes õpetustes, et sellest piisab, nagu see on nginx.conf lisame järgmise rea ca TLS 1.3 aktiveeritakse:

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;

Võlts. Kui server CentOS koos juhtkonnaga VestaCP, NGINX ei ole koostatud minimaalse versiooniga OpenSSL 1.1.1.1, ssl_protocols TLSv1.2 TLSv1.3; aastal nginx.conf .. see ei aita üldse.

[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

Nii et ülaltoodud näites on Nginx 1.22.0 ühilduv versioon TLS 1.3, aga raamatukogu meid ei aita OpenSSL 1.0.2k-fips.

Aktiveerimiseks TLSv1.3 Nginxi puhul peate esmalt installima alamteegid ja arenduspaketid. Development Tools. See jookseb sisse CentOS 7 käsurida:

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. Installige uusim versioon OpenSSL

Praegu on uusim versioon OpenSSL 1.1.1p, aga nii palju kui mina olen märganud on juba ja OpenSSL 3. Allikad leiate aadressilt 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 

Väga oluline joosta make test enne raamatukogu installimist. Kui testis on vigu, ärge käivitage make install kuni vead on parandatud.

Järgmises etapis teeme praegusest binaarfailist varukoopia openssl ja lisame symlink uuele.

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

sisse /usr/local/openssl/bin hukata ldd sõltuvuste kontrollimiseks openssl. Võimalik, et saame kontrollida ka versiooni openssl. Käsk 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

Meil on praegu installitud uusim versioon OpenSSL mis vastu peab TLSv1.3. Saame kontrollida versioone TLS / SSL toetavad raamatupoed OpenSSL tellimuse järgi:

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

See ei tähenda, et veebisaite hostitakse halduri abiga VestaCP saavad kohe TLS 1.3.

Kuigi oleme installinud OpenSSL 1.1.1p, Nginx on koostatud vana versiooniga 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. Kompileerige Nginx süsteemi jaoks uuesti VestaCP

Selles etapis peame uuesti kompileerima OpenSSL Nginxi versioon on juba installitud süsteemis CentOS / VestaCP. Nagu ma eespool ütlesin, on minu puhul tegemist umbes nginx/1.22.0. Kuna me räägime veebiserverist, millel on VestaCP haldussüsteemi, enne kui hakkame uuesti kompileerima, on hea teha nginxi konfiguratsioonifailidest varukoopia.

Nginxi voolu varundamine süsteemis VestaCP

Arhiveerige ja hoidke kataloogid kuskil serveris "/etc/nginx"ja"/usr/local/vesta/nginx".

JOOKSE nginx -V ja salvestage olemasolevad moodulid faili.

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'
Kuidas aktiveerite? TLSv1.3 NGINX-is
Kuidas aktiveerida? TLSv1.3 NGINX-is

Kuidas Nginxi uuendamiseks uuesti kompileerida OpenSSL / CentOS 7

Ma kordan. Kui teil on VestaCP, laadige alla Nginxi versioon, mille olete juba installinud. Leiate kõik Nginxi versioonidega arhiivid 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

Kompileerime nginxi moodulid uuesti:

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

Nginx on nüüd installitud ja koostatud selle uusima versiooniga OpenSSL suudab vastu pidada 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

*Kui nginx oli juba serverisse installitud, peate selle desinstallima. Kompileerimine ei tööta nginxi versiooniuuendusel.

Kuidas aktiveerida TLSv1.3 domeenide jaoks VestaCP-s?

Failis /etc/nginx/nginx.conf lisame järgmised read:

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

Domeeni tasemel muutsin mallides midagi VestaCP ja HTTP/2 lubamiseks. Nii et kui lisan uue domeeni (example.com), kus Let's Encrypt on lubatud, on mul järgmine konfiguratsioonifail 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';

Enne nginxi taaskäivitamist on hea kõigepealt selle konfiguratsiooni testida.

[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

Loodan, et see õpetus on teile kasulik ja kui teil on midagi jänni, jätke probleemi üksikasjad kommentaaridesse.

Tehnoloogiafännina olen alates 2006. aastast rõõmuga kirjutanud lehel StealthSettings.com. Mul on laialdased kogemused operatsioonisüsteemides: macOS, Windows ja Linux, samuti programmeerimiskeeltes ja blogiplatvormides (WordPress) ning veebipoodide ja platvormidega (WooCommerce, Magento, PrestaShop).

kuidas » Linux » Kuidas aktiveerida TLSv1.3 NGINX-is? VestaCP / CentOS või Ubuntu
Jäta kommentaar