Како се активирати TLSв1.3 на НГИНКС-у. VestaCP pe CentOS са ОпенSSL

У овом водичу ћемо видети како активирати TLSв1.3 на НГИНКС, да се мало разумемо Шта то значи ово TLS КСНУМКС, шта помаже и зашто морамо на веб серверу као TLS да се активира. Хајде да разумемо зашто на а сервер са VestaCP (CentOS или Убунту) је мало теже да активирате TLS 1.3 него на цПанел серверу. Или на серверу где немамо софтвер за управљање хостингом.

Зашто је боље TLS 1.3 него TLS КСНУМКС?

TLS (Transport Layer Security) Је криптографски протокол што обезбеђује сигурност везе између рачунара и мреже којој припада. TLS користи се у апликацијама као што су: емајл, Поруке, гласовне и видео позиве (ВоИП), али посебно на HTTPS. Обезбеђивање безбедне комуникације између рачунара или паметног телефона корисника и веб сервера странице којој се приступа.

TLSвКСНУМКС нуди већа брзина везу клијент - сервер и а Штавише безбедност елиминисањем неких алгоритама. Разлике између TLSв1.2 си TLSвКСНУМКС.

Око HTTPS, SSL (Слој сигурних утичница) Такође сам рекао у другим чланцима:

Како се активирати TLSв1.3 на НГИНКС-у. Сервер са VestaCP инсталиран на CentOS

Пре него што видимо како се активирамо TLSв1.3 на НГИНКС-у, морамо имати минимум софтверских захтева и присутних библиотека.

  1. НГИНКС 1.13.к или новији
  2. Потврда TLS важећи
  3. Активно име домена са исправно конфигурисаним ДНС-ом - да буде доступан на интернету
  4. Потврда TLS / SSL валидан. Може бити и Лет'с Енцрипт.

На а VestaCP инсталиран давно, имамо само протокол TLS 1.2. Видео сам у многим туторијалима да је довољно као у nginx.conf додајмо следећи ред јер 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;

Фалсификат. Ако сервер CentOS cu VestaCP, НГИНКС није компајлиран са минималном верзијом Опен-аSSL КСНУМКС, ssl_protocols TLSv1.2 TLSv1.3; in nginx.conf то нам уопште не помаже.

[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

Стога је у примеру изнад Нгинк 1.22.0 компатибилан са TLSв1.3, али нам Опен библиотека не помажеSSL 1.0.2к-фипс.

Да активирате TLSв1.3 на Нгинк-у, прво морамо да инсталирамо дечје библиотеке и развојне пакете. Развојни алати. Трчимо даље 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. Инсталирајте најновију Опен верзијуSSL

У овом тренутку најновија верзија је отворенаSSL 1.1.1п, али колико сам приметио већ постоји ОпенSSL 3. Изворе можете пронаћи на отворенSSLОрг..

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 

Веома је важно трчати make test пре инсталирања библиотеке. Ако је дошло до грешака током теста, немојте покретати make install док се грешке не исправе.

У следећем кораку правимо резервну копију тренутне отворене бинарне датотекеssl а новом додамо симболичку везу.

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

In /usr/local/openssl/bin извршити ldd да провери отворене зависностиssl. Такође можемо да проверимо отворену верзијуssl. Цомманд 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

Тренутно имамо инсталирану најновију верзију Опен-аSSL који подржава TLSв1.3. Можемо да проверимо верзије TLS / SSL подржавају отворене библиотекеSSL по налогу:

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

То не значи да се веб локације хостују на VestaCP одмах ће имати TLS 1.3. ни macар Нгинк још увек није компајлиран за нову верзију Опен-аSSL.

Иако имамо инсталиран ОпенSSL 1.1.1п, Нгинк је компајлиран са старом Опен верзијомSSL 1.0.2к-фипс.

[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. Поново компајлирајте Нгинк VestaCP

У овом кораку морамо поново да компајлирамо за ОпенSSL верзија Нгинк-а је већ инсталирана pe CentOS / VestaCP. Као што сам рекао горе, у мом случају се ради о нгинк / 1.22.0. Ради се о веб серверу који има VestaCP као систем од adminПре него што започнете рекомпилацију, добро је направити резервну копију нгинк конфигурационих датотека.

Актуелна резервна копија Нгинк-а је укључена VestaCP

Архивирајте и чувајте директоријуме негде на серверу "/etc/nginx"И"/usr/local/vesta/nginx".

погубљен nginx -V и сачувајте постојеће модуле у датотеку.

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'
Како се активирати TLSв1.3 на НГИНКС
Како се активирати TLSв1.3 на НГИНКС

Ми преузимамо и компајлирамо Нгинк

Понављање. Ако имате VestaCP, преузмите верзију Нгинк-а коју сте већ инсталирали. Све архиве са Нгинк верзијама могу се наћи на нгинк.орг.

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

Рекомпајлирамо нгинк модуле:

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

Сада имамо инсталиран и компајлиран Нгинк са најновијом верзијом Опен-аSSL у стању да издржи TLSвКСНУМКС.

[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

Како се активирати TLSв1.3 за домене укључене VestaCP

У датотеци / етц / нгинк /nginx.conf додајемо следеће редове:

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

На нивоу домена, променио сам нешто у шаблонима VestaCP и да омогућите ХТТП / 2. Дакле, када додајем нови домен (екампле.цом) са омогућеном Лет'с Енцрипт, имам следећу конфигурациону датотеку за 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';

Пре тебе restartимате нгинк, добро је да пре тестирања његове конфигурације.

[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

Надам се да вам је овај туторијал користан, а ако у нечему не успете, оставите детаље проблема у коментарима.

како » Linux » Како се активирати TLSв1.3 на НГИНКС-у. VestaCP pe CentOS са ОпенSSL

Заљубљен у технологију, волим да тестирам и пишем упутства о оперативним системима macOS, Linux, Windows, О томе WordPress, ВооЦоммерце и конфигуришите ЛЕМП веб сервере (Linux, НГИНКС, МиСКЛ и ПХП). Пишем даље StealthSettings.цом од 2006. године, а неколико година касније почео сам да пишем на иХовТо.Типс водичима и вестима о уређајима у екосистему Apple: iPhone, иПад, Apple Ватцх, ХомеПод, iMac, MacBook, АирПодс и додаци.

Оставите коментар