Как активировать TLSV1.3 на NINX. Vestacp / centos или ubuntu

В этом уроке вы узнаете, как Activezi tlsv1.3 или nginxПолем Что это значит TLSv 1.3В Что помогает И почему тебе нужно на веб -сервере TLS может быть активированПолем Для серверов с системой управления Vestacp (Centos или Ubuntu) немного сложнее Activat TLS 1.3 Только на сервере с CPanel, но это не невозможно.

Почему TLS 1,3 лучше, чем TLS 1.2?

TLS (Transport Layer Security) Это криптографический протокол который гарантирует Безопасность соединения между компьютером и сетью, к которой он принадлежит. TLS используется в таких приложениях, как: электронная почтаВ посланникВ Голосовые и видеозвонки (VoIP), но особенно в HTTPSПолем Обеспечение безопасной связи между компьютером или смартфоном пользователя и веб -сервером обратной страницы.

TLS 1.3 Предлагает o более высокая скорость клиентского соединения – сервер и один плюс безопасность Устранение алгоритмов. Различия между TLSV1.2 и TLSV1.3Полем

О HTTPSВ SSL (Secure Sockets Layer) Я также сказал в других предметах:

Как активировать TLS 1.3 на NINX. Сервер с управлением VestACP / CentOS

Прежде чем увидеть, как вы активируете TLSV1.3 на Nginx, вам необходимо рассмотреть некоторые минимальные требования для TLS 1.3Полем

  1. Ningin 1.13.x или более новая версия
  2. Действующий сертификат TLS
  3. Доменное имя активно с DNS, настроенным правильно – быть доступным в Интернете
  4. Действующий сертификат TLS / SSL. Это может быть Let’s EncryptПолем

На 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 Management VestacpВ Ningx не был составлен с минимальной версией OpenSSL 1.1.1.1В ssl_protocols TLSv1.2 TLSv1.3; в 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

ASAR, в приведенном выше примере Nginx 1.22.0 совместим с версией TLS 1.3, но не помогает в книжном магазине OpenSSL 1.0.2k-fipsПолем

Чтобы активировать TLSV1.3 на Nginx, сначала необходимо установить книжные магазины для детства и пакетов развития. Development ToolsПолем Выполняется в командных строках 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. Установите последнюю версию OpenSSL

В настоящее время самая последняя версия OpenSSL 1.1.1p, но из того, что я заметил, есть уже opennsl 3. Вы находите источники на 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 

Очень важно бежать make test Перед установкой книжного магазина. Если в тесте произошли ошибки, не запускайте make install Пока ошибки не будут исправлены.

На следующем шаге мы делаем резервную копию текущего двоичного файла openssl и я добавляю symlink к новому.

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

В /usr/local/openssl/bin выполнять ldd Чтобы проверить зависимость OpenSSL. Мы также можем проверить версию OpenSL. Командование 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

В настоящее время у нас установлена последняя версия OpenSSL который поддерживает TLSv1.3Полем Мы можем проверить версии TLS / SSL Поддерживается библиотекарями OpenSSL По заказу:

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

Это не означает, что веб -сайты размещены с помощью менеджера VestaCP У них будет немедленно TLS 1.3Полем

Хотя мы установили OpenSSL 1.1.1p, Nginx составлен со старой версией 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 VestaCP

На этом этапе мы должны пересекать OpenSSL Версия Nginx уже установлена в системе CentOS / VestaCPПолем Как я уже сказал, в моем случае это о nginx/1.22.0Полем О том, чтобы быть о веб -сервере, который имеет VestaCP Административная система, прежде чем мы запустим перекомпиляцию, хорошо для резервного копирования файлов Nginx.

Резервное копирование тока Nginx в системе 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'
Как активировать TLSV1.3 на nginx
Сперма его перца tlsv1.3

Как получить NINX для роста opensl / centos 7

Я повторяю. Если у вас есть Vestacp, Загрузите версию NGINX, которую вы уже установили. Все архивы с версиями Nginx, на которых вы их найдете 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

Мы переоцениваем модули NGINX:

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

Теперь мы установили и скомпилировали с последней версией OpenSSL Способен поддержать 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

*Если Nginx уже был установлен на сервере, вам нужно будет удалить его. Компиляция не функционирует при обновлении NINX.

Как активировать TLSV1.3 для полей на VestAcp

В файле /etc/nginx/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 и активировать http/2Полем Поэтому при добавлении нового домена (example.com) с активированным Encrypt, у меня есть следующий файл конфигурации 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';

Прежде чем перезапустить Nginx, он хорошо, прежде чем проверить его конфигурацию.

[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

Я надеюсь, что этот учебник полезен для вас, и если вы не получите успех, оставьте детали проблемы в комментариях.

Увлеченными технологиями, я с удовольствием пишу на stealthsetts.com, начиная с 2006 года. У меня богатый опыт работы в операционных системах: macOS, Windows и Linux, а также в языках программирования и платформах для блога (WordPress) и для интернет -магазинов (WooCommerce, Magento, Presashop).

Дом Ваш источник его учебников, полезных советов и новостей. Как активировать TLSV1.3 на NINX. Vestacp / centos или ubuntu
Оставьте комментарий