Hvordan aktiverer du TLSv1.3 på NGINX? VestaCP / CentOS eller Ubuntu

I denne opplæringen lærer du hvordan Aktiver TLSv1.3 på NGINX. Hva betyr det TLSv 1.3, hva hjelper det og hvorfor du trenger på webserveren som TLS kan aktiveres. For servere med styringssystem VestaCP (CentOS eller Ubuntu) er litt vanskeligere å aktivere TLS 1.3 enn på en cPanel-server, men det er ikke umulig.

Hvorfor er det bedre TLS 1.3 enn TLS 1.2?

TLS (Transport Layer Security) er en kryptografisk protokoll som sikrer tilkoblingssikkerhet mellom datamaskinen og et nettverk den er en del av. TLS den brukes i applikasjoner som: emalje, meldinger, tale- og videosamtaler (VoIP), men spesielt kl HTTPS. Sikre sikker kommunikasjon mellom brukerens datamaskin eller smarttelefon og webserveren til siden som åpnes.

TLS 1.3 tilbyr en høyere hastighet å koble til klient-server og en Videre sikkerhet ved å eliminere noen algoritmer. Forskjellene mellom TLSv1.2 og TLSv1.3.

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

Hvordan aktiverer du TLS 1.3 på NGINX? Server med VestaCP-administrasjon / CentOS

Før du ser hvordan du aktiverer TLSv1.3 på NGINX, må du vurdere noen minimumskrav for TLS 1.3.

  1. NGINX 1.13.x eller nyere
  2. Et sertifikat TLS gyldig
  3. Aktivt domenenavn med riktig konfigurert DNS – være tilgjengelig på Internett
  4. Et sertifikat TLS / SSL gyldig. Det kan det også være Let’s Encrypt.

Pe VestaCP installert for lenge siden, vi har bare protokollen tilgjengelig TLS 1.2. Jeg har sett i mange tutorials at det er nok som i nginx.conf la oss legge til følgende linje for ca TLS 1.3 som skal aktiveres:

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;

Forfalskning. Hvis serveren CentOS med ledelsen VestaCP, NGINX er ikke kompilert med minimumsversjonen OpenSSL 1.1.1.1, ssl_protocols TLSv1.2 TLSv1.3; i nginx.conf .. det hjelper ikke i det hele tatt.

[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 versjon TLS 1.3, men biblioteket hjelper oss ikke OpenSSL 1.0.2k-fips.

For å aktivere TLSv1.3 på Nginx, må du installere barnebibliotekene og utviklingspakkene først. Development Tools. Den renner inn CentOS 7 kommandolinjer:

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 nyeste versjonen OpenSSL

På dette tidspunktet er den nyeste versjonen OpenSSL 1.1.1p, men så vidt jeg har lagt merke til er det allerede og OpenSSL 3. Kildene finner du 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 

Veldig viktig å løpe make test før du installerer biblioteket. Hvis testen har feil, ikke kjør make install til feilene er rettet.

I neste trinn tar vi en sikkerhetskopi av gjeldende binærfil openssl og vi legger til 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 henrette ldd for å sjekke avhengigheter openssl. Vi kan muligens også sjekke versjonen av 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 for øyeblikket den nyeste versjonen installert OpenSSL som holder ut TLSv1.3. Vi kan sjekke versjonene TLS / SSL støttet av bokhandlere OpenSSL i rekkefølge:

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

Dette betyr ikke at nettsteder hostes med hjelp av lederen VestaCP de vil ha umiddelbart TLS 1.3.

Selv om vi har installert OpenSSL 1.1.1p, Nginx er kompilert med den gamle versjonen 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. Kompiler Nginx på nytt for systemet VestaCP

I dette trinnet må vi rekompilere for OpenSSL versjon av Nginx allerede installert på systemet CentOS / VestaCP. Som jeg sa ovenfor, i mitt tilfelle handler det om nginx/1.22.0. Siden vi snakker om en webserver som har VestaCP administrasjonssystem, før vi begynner å rekompilere er det greit å ta en sikkerhetskopi av nginx-konfigurasjonsfilene.

Sikkerhetskopier Nginx gjeldende på systemet VestaCP

Arkiver og oppbevar katalogene et sted på serveren "/etc/nginx"og"/usr/local/vesta/nginx".

LØPE nginx -V og lagre 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'
Hvordan aktiverer du? TLSv1.3 på NGINX
Slik aktiverer du TLSv1.3 på NGINX

Hvordan rekompilere Nginx for oppgradering OpenSSL / CentOS 7

Jeg gjentar. Hvis du har VestaCP, last ned versjonen av Nginx du allerede har installert. Du kan finne alle arkiver med Nginx-versjoner 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 rekompilerer nginx-modulene:

./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 nå Nginx installert og kompilert med den nyeste versjonen av OpenSSL i stand til å tåle 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 installert på serveren, må du avinstallere den. Kompiler fungerer ikke på nginx-oppgradering.

Hvordan aktiverer du TLSv1.3 for domener på VestaCP?

I filen /etc/nginx/nginx.conf vi legger til 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å domenenivå endret jeg noe i malene VestaCP og for å aktivere HTTP/2. Så når jeg legger til et nytt domene (example.com) med Let's Encrypt aktivert, har jeg følgende konfigurasjonsfil for 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 starter nginx på nytt, er det greit å teste konfigurasjonen 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åper du finner denne veiledningen nyttig, og hvis du står fast med noe, legg igjen problemdetaljene i kommentarene.

Teknologiinteressert, jeg skriver med glede på StealthSettings.com siden 2006. Jeg har bred erfaring med operativsystemer: macOS, Windows og Linux, samt programmeringsspråk og bloggplattformer (WordPress) og for nettbutikker (WooCommerce, Magento, PrestaShop).

Hvordan » Linux » Hvordan aktiverer du TLSv1.3 på NGINX? VestaCP / CentOS eller Ubuntu
Legg igjen en kommentar