Kuinka aktivoida TLSv1.3 NGINXissä? VestaCP / CentOS tai Ubuntu

Tässä opetusohjelmassa opit kuinka aktivoida TLSv1.3 NGINX:ssä. Mitä se tarkoittaa TLSv 1.3, mitä se auttaa ja miksi tarvitset verkkopalvelimella nimellä TLS voidaan aktivoida. Palvelimille, joissa on hallintajärjestelmä VestaCP (CentOS tai Ubuntu) on hieman vaikeampi aktivoida TLS 1.3 kuin cPanel-palvelimella, mutta se ei ole mahdotonta.

Miksi se on parempi TLS 1.3 kuin TLS 1.2?

TLS (Transport Layer Security) on kryptografinen protokolla joka takaa yhteyden suojaus tietokoneen ja verkon, johon se kuuluu, välillä. TLS sitä käytetään sovelluksissa, kuten: email, Viestit, ääni- ja videopuhelut (VoIP), mutta erityisesti klo HTTPS. Turvallisen viestinnän varmistaminen käyttäjän tietokoneen tai älypuhelimen ja avatun sivun verkkopalvelimen välillä.

TLS 1.3 tarjoaa a suurempi nopeus yhdistävä asiakas - palvelin ja a Lisäksi turvallisuus poistamalla joitain algoritmeja. Erot välillä TLSv1.2 ja TLSv1.3.

noin HTTPS, SSL (Secure Sockets Layer) Sanoin myös muissa artikkeleissa:

Kuinka aktivoida TLS 1.3 NGINXissä? Palvelin, jossa on VestaCP-hallinta / CentOS

Ennen kuin näet kuinka aktivoit TLSv1.3 NGINX:ssä, sinun on otettava huomioon joitain vähimmäisvaatimuksia TLS 1.3.

  1. NGINX 1.13.x tai uudempi
  2. Todistus TLS pätevä
  3. Aktiivinen verkkotunnus oikein määritetyllä DNS:llä – ole käytettävissä Internetissä
  4. Todistus TLS / SSL pätevä. Se voi myös olla Let’s Encrypt.

Pe VestaCP asennettu kauan sitten, meillä on vain protokolla saatavilla TLS 1.2. Olen nähnyt monissa opetusohjelmissa, että se riittää sellaisenaan nginx.conf lisätään seuraava rivi n TLS 1.3 aktivoitava:

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;

Fake. Jos palvelin CentOS johdon kanssa VestaCP, NGINX:ää ei ole käännetty minimiversiolla OpenSSL 1.1.1.1, ssl_protocols TLSv1.2 TLSv1.3; în nginx.conf .. se ei auta yhtään.

[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

Joten yllä olevassa esimerkissä Nginx 1.22.0 on yhteensopiva versio TLS 1.3, mutta kirjasto ei auta meitä OpenSSL 1.0.2k-fips.

Aktivoida TLSv1.3 Nginxissä, sinun on ensin asennettava lapsikirjastot ja kehityspaketit. Development Tools. Se juoksee sisään CentOS 7 komentoriviä:

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. Asenna uusin versio OpenSSL

Tällä hetkellä uusin versio on OpenSSL 1.1.1p, mutta sikäli kuin olen huomannut, on jo ja OpenSSL 3. Löydät lähteet osoitteesta 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 

Erittäin tärkeää juosta make test ennen kirjaston asentamista. Jos testissä on virheitä, älä suorita sitä make install kunnes virheet on korjattu.

Seuraavassa vaiheessa teemme varmuuskopion nykyisestä binääritiedostosta openssl ja lisäämme symlink uuteen.

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

sisään /usr/local/openssl/bin suorittaa ldd tarkistamaan riippuvuuksia openssl. Voimme myös tarkistaa version openssl. Komento 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

Meillä on tällä hetkellä uusin versio asennettuna OpenSSL joka kestää TLSv1.3. Voimme tarkistaa versiot TLS / SSL kirjakauppojen tukemana OpenSSL tilauksesta:

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

Tämä ei tarkoita, että verkkosivustoja isännöidään johtajan avulla VestaCP he saavat heti TLS 1.3.

Vaikka olemme asentaneet OpenSSL 1.1.1p, Nginx on käännetty vanhan version kanssa 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. Käännä Nginx uudelleen järjestelmää varten VestaCP

Tässä vaiheessa meidän on käännettävä uudelleen OpenSSL Nginx-versio on jo asennettu järjestelmässä CentOS / VestaCP. Kuten edellä sanoin, minun tapauksessani on kyse noin nginx/1.22.0. Koska puhumme verkkopalvelimesta, jolla on VestaCP hallintajärjestelmää, ennen kuin aloitamme uudelleenkääntämisen, on hyvä tehdä varmuuskopio nginx-asetustiedostoista.

Varmuuskopioi Nginx-virta järjestelmään VestaCP

Arkistoi ja säilytä hakemistot jossain palvelimella "/etc/nginx"ja"/usr/local/vesta/nginx".

JUOSTA nginx -V ja tallenna olemassa olevat moduulit tiedostoon.

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'
Miten aktivoit? TLSv1.3 NGINX:ssä
Kuinka aktivoida TLSv1.3 NGINX:ssä

Kuinka kääntää Nginx uudelleen päivitystä varten OpenSSL / CentOS 7

Toistan. Jos sinulla on VestaCP, lataa jo asentamasi Nginx-versio. Löydät kaikki arkistot, joissa on Nginx-versiot 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

Käännämme nginx-moduulit uudelleen:

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

Meillä on nyt Nginx asennettuna ja käännetty uusimmalla versiolla OpenSSL pystyy kestämään 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

*jos nginx oli jo asennettu palvelimelle, sinun on poistettava se. Käännös ei toimi nginx-päivityksessä.

Kuinka aktivoida TLSv1.3 domeeneille VestaCP:ssä?

Tiedostossa /etc/nginx/nginx.conf lisäämme seuraavat rivit:

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

Verkkotunnustasolla muutin jotain malleissa VestaCP ja ottaa HTTP/2 käyttöön. Joten kun lisään uuden verkkotunnuksen (example.com), jossa Let's Encrypt on käytössä, minulla on seuraava määritystiedosto 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';

Ennen kuin käynnistät nginxin uudelleen, on hyvä testata sen kokoonpano ensin.

[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

Toivon, että tämä opetusohjelma on sinulle hyödyllinen, ja jos olet jumissa jossakin, jätä ongelman tiedot kommentteihin.

Teknologiasta kiinnostunut, kirjoitan mielelläni StealthSettings.com-sivustolla vuodesta 2006. Minulla on laaja kokemus käyttöjärjestelmistä: macOS, Windows ja Linux, sekä ohjelmointikielistä ja blogialustoista (WordPress) ja verkkokaupoista (WooCommerce, Magento, PrestaShop).

Miten » Linux » Kuinka aktivoida TLSv1.3 NGINXissä? VestaCP / CentOS tai Ubuntu
Jätä kommentti