Dans ce tutoriel, vous apprendrez comment activezi tlsv1.3 ou nginx. Ce que cela signifie TLSv 1.3, Ce qui aide Et pourquoi Vous avez besoin Sur le serveur Web CA TLS peut être activé. Pour les serveurs avec système de gestion Vestacp (Centos ou Ubuntu) est un peu plus difficile d'activer TLS 1.3 Seulement sur un serveur avec CPanel, mais ce n'est pas impossible.
contenu
Pourquoi TLS 1.3 est-il meilleur que TLS 1.2?
TLS (Transport Layer Security) C'est un protocole cryptographique qui assure Sécurité des connexions Entre l'ordinateur et un réseau auquel il appartient. TLS est utilisé dans des applications telles que: e-mail, messager, Appels vocaux et vidéo (VoIP), mais surtout à HTTPS. Assurer une communication sécurisée entre l'ordinateur ou le smartphone de l'utilisateur et le serveur Web de la page accessible.
TLS 1.3 Offre o vitesse plus élevée de connexion client – serveur et un plus la sécurité en éliminant les algorithmes. Les différences entre TLSV1.2 et TLSV1.3.
À propos HTTPS, SSL (Secure Sockets Layer) J'ai également dit dans d'autres articles:
- Comment installer SSL (HTTPS Connection) certifié pour un site Web Hostat sur un serveur Nginx sans CPanel ou VestACP
- Recompilare OpenSSL 1.1 & Ningin 1,25 pour TLS 1,3 (CentOS 7)
- Comment déplacer un blog ou un site Web WordPress de HTTP à HTTPS (NGINX)
- Supprimer les anciens domaines certificats CERTBOT (Certificat de crypte)
Comment activez-vous TLS 1.3 sur ninx. Serveur avec gestion VESTACP / CentOS
Avant de voir comment vous activez TLSV1.3 sur Nginx, vous devez considérer certaines exigences minimales pour TLS 1.3.
- Ningin 1.13.x ou une version plus récente
- Un certificat TLS valide
- Nom de domaine actif avec DNS configuré correctement – être accessible sur Internet
- Un certificat TLS / SSL valide. Ça peut être Let’s Encrypt.
Sur VestACP installé il y a longtemps, nous n'avons que le protocole TLS 1.2. J'ai vu dans de nombreux tutoriels que c'est suffisant comme dans nginx.conf Ajoutons la ligne suivante pour l'activation de 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;
FAUX. Si sur un serveur Centos Cu Management Vestacp, Ningx n'a pas été compilé avec la version minimale OpenSSL 1.1.1.1, ssl_protocols TLSv1.2 TLSv1.3; dans nginx.conf .. Cela n'aide à rien.
[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, dans l'exemple ci-dessus, Nginx 1.22.0 est compatible avec la version TLS 1.3, mais n'aide pas la librairie OpenSSL 1.0.2k-fips.
Afin d'activer TLSV1.3 sur Nginx, vous devez d'abord installer les librairies pour les packages d'enfance et de développement. Development Tools. Exécute dans les lignes de commande 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. Installez la dernière version OpenSSL
À l'heure actuelle, la version la plus récente est OpenSSL 1.1.1p, mais d'après ce que j'ai remarqué, il y a déjà OpenNSL 3. Vous trouvez les sources sur 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
Très important à courir make test Avant d'installer la librairie. Si des erreurs se sont produites dans le test, ne fonctionnez pas make install Jusqu'à ce que les erreurs soient corrigées.
À l'étape suivante, nous faisons une sauvegarde du fichier binaire actuel openssl Et j'ajoute symlink à la nouvelle.
mv /usr/bin/openssl /usr/bin/openssl-backup
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
Dans /usr/local/openssl/bin exécuter ldd Pour vérifier les dépendances OpenSSL. Nous pouvons également vérifier la version OpenSL. Commande 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
Pour le moment, nous avons la dernière version installée OpenSSL qui soutient TLSv1.3. Nous pouvons vérifier les versions TLS / SSL Soutenu par les bibliothécaires OpenSSL par ordre:
[root@north bin]# openssl ciphers -v | awk '{print $2}' | sort | uniq
SSLv3
TLSv1
TLSv1.2
TLSv1.3
[root@north bin]#
Cela ne signifie pas que les sites Web hébergés avec l'aide du gestionnaire VestaCP Ils auront immédiatement TLS 1.3.
Bien que nous ayons installé OpenSSL 1.1.1p, Nginx est compilé avec l'ancienne version 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
Dans cette étape, nous devons recomposer pour OpenSSL La version Nginx déjà installée sur le système CentOS / VestaCP. Comme je l'ai dit ci-dessus, dans mon cas, il s'agit de nginx/1.22.0. Être sur un serveur Web qui a VestaCP Système d'administration, avant de commencer la recompilation, il est bon de sauvegarder les fichiers Nginx.
Sauvegarder le courant Nginx sur le système VestaCP
Archiver et garder un endroit sur le serveur les directeurs “/etc/nginx” et “/usr/local/vesta/nginx“.
COURIR nginx -V et enregistrer dans un fichier modules existants.
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'

Comment recevoir le ninx pour l'upless openL / Centos 7
Je répète. Si vous avez Vestacp, Téléchargez la version Nginx que vous avez déjà installée. Toutes les archives avec les versions Nginx sur lesquelles vous les trouvez 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
Nous complitons les modules 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
Nous avons maintenant Ningx installé et compilé avec la dernière version de OpenSSL capable de prendre en charge 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
* Si Nginx était déjà installé sur le serveur, vous devrez le désinstaller. La compilation ne fonctionne pas à la mise à niveau Ninx.
Comment activez-vous TLSV1.3 pour les champs sur VESTACP
Dans le fichier /etc/nginx/nginx.conf Nous ajoutons les lignes suivantes:
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';
Au niveau des domaines, j'ai changé quelque chose dans les modèles Vestacp et pour activer http / 2. Ainsi, lors de l'ajout d'un nouveau domaine (Example.com) avec Let's Encrypt activé, j'ai le fichier de configuration SSL suivant:
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';
Avant de redémarrer Nginx, il est bon avant de tester sa configuration.
[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
J'espère que ce tutoriel vous est utile, et si vous ne réussissez pas, laissez les détails du problème dans les commentaires.