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.
Sisältö
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 asentaa varmenne SSL (HTTPS Yhteys) verkkosivustolle, jota isännöidään NGINX-palvelimella ilman cPanelia tai VestaCP
- Kääntää uudelleen OpenSSL 1.1 ja NGINX 1.25 varten TLS 1.3 (CentOS 7)
- Blogin tai verkkosivuston siirtäminen WordPress HTTP:stä alkaen HTTPS (Nginx)
- Poista vanhat verkkotunnukset Certbot certificates (Salataan varmenne)
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.
- NGINX 1.13.x tai uudempi
- Todistus TLS pätevä
- Aktiivinen verkkotunnus oikein määritetyllä DNS:llä – ole käytettävissä Internetissä
- 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'
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.