Kuinka aktivoida TLSv1.3 nginxissä. VestaCP pe CentOS avoimestiSSL

Tässä opetusohjelmassa näemme kuinka aktivoida TLSv1.3 NGINX:ssä, ymmärretään vähän mitä se tarkoittaa tämä TLS 1.3, mikä auttaa ja miksi me tarvitsemme verkkopalvelimella nimellä TLS aktivoitavaksi. Ymmärretään miksi a palvelin kanssa VestaCP (CentOS tai Ubuntu) on hieman vaikeampi aktivoida TLS 1.3 kuin cPanel-palvelimella. Tai palvelimella, jossa meillä ei ole hosting-hallintaohjelmistoa.

Miksi se on parempi TLS 1.3 kuin TLS 1.2?

TLS (Transport Layer Security) Onko kryptografinen protokolla joka takaa yhteyden suojaus tietokoneen ja verkon, johon se kuuluu, välillä. TLS 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ä.

TLSv1.3 tarjoaa suurempi nopeus asiakas-palvelin-yhteys ja a Lisäksi turvallisuus poistamalla joitain algoritmeja. Erot TLSv1.2 ja TLSv1.3.

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

Kuinka aktivoida TLSv1.3 NGINX:ssä. Palvelin kanssa VestaCP asennettu CentOS

Ennen kuin näemme, kuinka aktivoimme TLSv1.3 NGINX:ssä, meillä on oltava vähintään ohjelmistovaatimukset ja kirjastot.

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

A VestaCP asennettu kauan sitten, meillä on vain protokolla TLS 1.2. Olen nähnyt monissa opetusohjelmissa, että se riittää sellaisenaan nginx.conf lisätään seuraava rivi, koska 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 cu VestaCP, NGINX:ää ei ole käännetty Openin vähimmäisversiollaSSL 1.1.1.1, ssl_protocols TLSv1.2 TLSv1.3; in nginx.conf se ei auta meitä 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

Siksi yllä olevassa esimerkissä Nginx 1.22.0 on yhteensopiva TLSv1.3, mutta avoin kirjasto ei auta meitäSSL 1.0.2k-fips.

Aktivoida TLSv1.3 Nginxissä, meidän on ensin asennettava lasten kirjastot ja kehityspaketit. Kehitystyökalut. Juoksemme eteenpäin 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 Open-versioSSL

Tällä hetkellä uusin versio on OpenSSL 1.1.1p, mutta huomasin, että siellä on jo OpenSSL 3. Löydät lähteet osoitteesta avoinSSL. 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 testin aikana tapahtui virheitä, älä suorita make install kunnes virheet on korjattu.

Seuraavassa vaiheessa varmuuskopioimme nykyisen avoimen binaaritiedostonssl ja lisäämme symbolin uuteen.

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

In /usr/local/openssl/bin suorittaa ldd tarkistaaksesi avoimia riippuvuuksiassl. Voimme myös tarkistaa avoimen versionssl. 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ä asennettuna Openin uusin versioSSL joka tukee TLSv1.3. Voimme tarkistaa versiot TLS / SSL avoimet kirjastot tukevatSSL 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 VestaCP he saavat heti TLS 1.3. ei kumpikaan macar Nginxiä ei ole vielä käännetty uudelle Open-versiolleSSL.

Vaikka meillä on Open asennettunaSSL 1.1.1p, Nginx on käännetty vanhan avoimen version kanssaSSL 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 päälle VestaCP

Tässä vaiheessa meidän on käännettävä uudelleen OpenSSL jo asennettu Nginx-versio pe CentOS / VestaCP. Kuten edellä sanoin, minun tapauksessani on kyse nginx / 1.22.0:sta. Koska kyseessä on verkkopalvelin, jolla on VestaCP järjestelmänä adminEnnen uudelleenkääntämisen aloittamista on hyvä varmuuskopioida nginx-määritystiedostot.

Nykyinen Nginx-varmuuskopiointi päällä VestaCP

Arkistoi ja tallenna hakemistoja jonnekin palvelimelle "/etc/nginx"Ja"/usr/local/vesta/nginx".

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

Lataamme ja kokoamme Nginxin

Toistaa. Jos sinulla on VestaCP, lataa Nginx-versio, jonka olet jo asentanut. Kaikki Nginx-versioita sisältävät arkistot löytyvät osoitteesta 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 Openin uusimmalla versiollaSSL 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

Kuinka aktivoida TLSv1.3 verkkotunnuksille VestaCP

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 sinua restartsinulla on nginx, on hyvä, että ennen sen kokoonpanon testaamista.

[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 et onnistu jossain, jätä ongelman yksityiskohdat kommentteihin.

Stealth

Intohimoisesti tekniikan suhteen, haluan testata ja kirjoittaa opetusohjelmia käyttöjärjestelmistä macOS, Linux, Windows, noin WordPress, WooCommerce ja määritä LEMP-verkkopalvelimet (Linux, NGINX, MySQL ja PHP). kirjoitan eteenpäin StealthSettings.com vuodesta 2006 lähtien, ja muutama vuosi myöhemmin aloin kirjoittaa iHowTo.Tips-oppaita ja uutisia ekosysteemin laitteista Apple: iPhone, iPad, Apple Katso, HomePod, iMac, MacBook, AirPodit ja lisävarusteet.

Jätä vastaus

Sähköpostiosoitettasi ei julkaista.

Aiheeseen liittyvät artikkelit

/ / /
Tunnisteet: / / / / / /
Takaisin alkuun -painiketta