Hvordan aktiverer du TLSV1.3 på NINX. VESTACP / CENTOS ELLER UBUNTU

I denne tutorial lærer du hvordan activezi TLSv1.3 eller NGINX. Hvad betyder det TLSv 1.3, hvad hjælper det og hvorfor du har brug for på webserveren som TLS kan aktiveres. Til servere med administrationssystem VestaCP (CentOS eller Ubuntu) er lidt sværere for at aktivere TLS 1.3 end på en cPanel-server, men det er ikke umuligt.

Hvorfor er TLS 1.3 bedre end TLS 1.2?

TLS (Transport Layer Security) Det er en kryptografisk protokol som sikrer forbindelsessikkerhed mellem computeren og et netværk, som den er en del af. TLS det bruges i applikationer som: e-mail, budbringer, stemme- og videoopkald (VoIP), men især kl HTTPS. Sikring af sikker kommunikation mellem brugerens computer eller smartphone og webserveren på den tilgåede side.

TLS 1.3 tilbyder en højere hastighed klient login – server og en Plus sikkerhed ved at fjerne nogle algoritmer. Forskellene mellem TLSV1.2 og TLSV1.3.

Om HTTPS, SSL (Secure Sockets Layer) Jeg sagde også i andre artikler:

Sådan aktiverer du TLS 1.3 på NGINX. Server med VestaCP / CentOS management

Før du ser på, hvordan du aktiverer TLSv1.3 på NGINX, er der nogle minimumskrav, du skal overveje TLS 1.3.

  1. NGINX 1.13.x eller nyere
  2. Et gyldigt TLS-certifikat
  3. Aktivt domænenavn med korrekt konfigureret DNS – være tilgængelig på internettet
  4. Et gyldigt TLS/SSL-certifikat. Det kan det også være Let’s Encrypt.

På VestaCP installeret for længe siden, har vi kun protokollen tilgængelig TLS 1.2. Jeg har set i mange tutorials, at det er nok som i nginx.conf tilføj følgende linje for at aktivere TLS 1.3:

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;

Falsk. Hvis på en server CentOS cu-styring VestaCP, NGINX blev ikke kompileret med minimumsversionen OpenSSL 1.1.1.1, ssl_protocols TLSv1.2 TLSv1.3; i nginx.conf .. det hjælper overhovedet ikke.

[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

Så i eksemplet ovenfor er Nginx 1.22.0 kompatibel med TLS version 1.3, men det hjælper ikke vores bibliotek OpenSSL 1.0.2k-fips.

For at aktivere TLSv1.3 på Nginx skal du først installere de underordnede biblioteker og udviklingspakker. Development Tools. Kør kommandolinjerne i CentOS 7:

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. Installer den seneste version OpenSSL

På dette tidspunkt er den seneste version OpenSSL 1.1.1p, men så vidt jeg har set, var der allerede OpenSSL 3. Du kan finde kilderne på 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 

Meget vigtigt at løbe make test før du installerer biblioteket. Hvis testen har fejl, skal du ikke køre make install indtil fejlene er rettet.

I næste trin laver vi en sikkerhedskopi af den aktuelle binære fil openssl og vi tilføjer symlink til den nye.

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

I /usr/local/openssl/bin udføre ldd for at kontrollere openssl-afhængigheder. Vi kan muligvis også tjekke versionen af ​​openssl. Kommando 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

Vi har i øjeblikket den nyeste version installeret OpenSSL som holder ud TLSv1.3. Vi kan tjekke versionerne TLS / SSL støttet af boghandlere OpenSSL efter ordre:

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

Dette betyder ikke, at websteder hostes med hjælp fra administratoren VestaCP de vil have med det samme TLS 1.3.

Selvom vi har installeret OpenSSL 1.1.1p, Nginx er kompileret med den gamle version 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. Genkompiler Nginx til systemet VestaCP

I dette trin skal vi omkompilere til OpenSSL version af Nginx allerede installeret på systemet CentOS / VestaCP. Som jeg sagde ovenfor, handler det i mit tilfælde om nginx/1.22.0. Da vi taler om en webserver, der har VestaCP administrationssystem, før vi begynder at kompilere igen, er det godt at lave en sikkerhedskopi af nginx-konfigurationsfilerne.

Sikkerhedskopier Nginx-aktuel på systemet VestaCP

Arkiver og opbevar mapperne et sted på serveren “/etc/nginx” og “/usr/local/vesta/nginx“.

LØBE nginx -V og gemme eksisterende moduler til en fil.

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'
Sådan aktiverer du TLSv1.3 på NGINX
Cum af hans TLSv1.3 side NGINX

Sådan genkompileres Nginx til OpenSSL / CentOS 7-opgradering

Jeg gentager. Hvis du har VestaCP, download den version af Nginx, du allerede har installeret. Du kan finde alle arkiver med Nginx-versioner på 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

Vi genkompilerer nginx-modulerne:

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

Vi har nu Nginx installeret og kompileret med den seneste version af OpenSSL i stand til at understøtte 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

*hvis nginx allerede var installeret på serveren, skal du afinstallere det. Kompiler virker ikke på nginx-opgradering.

Sådan aktiverer du TLSv1.3 for domæner på VestaCP

I filen /etc/nginx/nginx.conf vi tilføjer følgende linjer:

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

På domæneniveau ændrede jeg noget i skabelonerne VestaCP og for at aktivere HTTP/2. Så når jeg tilføjer et nyt domæne (example.com) med Let's Encrypt aktiveret, har jeg følgende konfigurationsfil til 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';

Før du genstarter nginx, er det godt at teste dens konfiguration først.

[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

Jeg håber, at du finder denne tutorial nyttig, og hvis du sidder fast med noget, så efterlad problemdetaljerne i kommentarerne.

Jeg er lidenskabelig med teknologi og skriver med glæde på stealthsetts.com startende med 2006. Jeg har en rig oplevelse i operativsystemer: macOS, Windows og Linux, men også inden for programmeringssprog og blogplatforme (WordPress) og til online butikker (Woocommerce, Magento, Presashop).

Hjem Din kilde til it -tutorials, nyttige tip og nyheder. Hvordan aktiverer du TLSV1.3 på NINX. VESTACP / CENTOS ELLER UBUNTU
Efterlad en kommentar