У цьому підручнику ви дізнаєтесь, як Activezi TLSV1.3 або NGINX. Що це означає TLSv 1.3, Що допомагає І чому Вам потрібно на веб -сайті CA TLS можна активувати. Для серверів із системою управління Штовхач (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) Я також сказав в інших пунктах:
- Як ми встановлюємо SSL (HTTPS Connection), сертифіковане для веб -сайту хостата на сервері Nginx без Cpanel або Vestacp
- Reckipilare openssl 1.1 & Ningin 1,25 для TLS 1,3 (Centos 7)
- Як перемістити веб -сайт блогу або WordPress з HTTP до HTTPS (NGINX)
- Видалити старі доменні сертифікати (давайте шифрують сертифікат)
Як активувати TLS 1.3 на NINX. Сервер з управлінням VESTACP / Centos
Перш ніж побачити, як ви активуєте TLSV1.3 на nginx, вам потрібно врахувати деякі мінімальні вимоги до TLS 1.3.
- Ningin 1.13.x або нова версія
- Дійсний сертифікат TLS
- Доменне ім’я активне з DNS, налаштованим правильно – бути доступним в Інтернеті
- Дійсний сертифікат 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 Штовхач, 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'

Як отримувати NINX для оновлення OpenSl / Centos 7
Я повторюю. Якщо у вас є Штовхач, Завантажте версію 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
Я сподіваюся, що цей підручник вам корисний, і якщо ви не досягнете успіху, залиште деталі проблеми в коментарях.