Bu öğreticide nasıl olduğunu öğreneceksiniz Activezi TLSV1.3 veya Nginx. Ne demek TLSv 1.3- Ne yardımcı olur Ve neden ihtiyacın var Webserver CA'da TLS etkinleştirilebilir. Yönetim sistemine sahip sunucular için Vestacp (Centos veya Ubuntu) biraz daha zor Activat TLS 1.3 Yalnızca cpanelli bir sunucuda, ancak imkansız değildir.
içerik
TLS 1.3 neden TLS 1.2'den daha iyi?
TLS (Transport Layer Security) Bu bir şifreli protokol Hangi garanti eder Bağlantı güvenliği bilgisayar ve bir ağ arasında aittir. TLS aşağıdakiler gibi uygulamalarda kullanılır: e -posta- haberci- Ses ve video görüşmeleri (VoIP), ama özellikle HTTPS. Kullanıcının bilgisayarı veya akıllı telefonu ile erişilen sayfanın web sunucusu arasında güvenli iletişimin sağlanması.
TLS 1.3 O teklifler daha yüksek hız Müşteri bağlantısı – sunucu ve bir Artı güvenlik Algoritmaları ortadan kaldırarak. TLSV1.2 ve TLSV1.3 arasındaki farklar.
Hakkında HTTPS- SSL (Secure Sockets Layer) Ayrıca diğer öğelerde de dedim:
- CPanel veya Vestacp olmadan bir Nginx sunucusuna bir hostat web sitesi için SSL (HTTPS bağlantısı) sertifikalı nasıl yükliyoruz
- Rescompilare OpenSSL 1.1 & TLS 1.3 için Ningin 1.25 (Centos 7)
- Bir blog veya wordpress web sitesini http'den https'e (nginx) nasıl taşırsınız
- Eski Alanlar Sertifika Sertifikalarını Sil (Sertifikayı Şifreleyelim)
Ninx'te TLS 1.3'ü nasıl etkinleştirirsiniz. VESACP / CentOS Yönetimi ile Sunucu
Nginx'te TLSV1.3'ü nasıl etkinleştirdiğinizi görmeden önce, TLS 1.3.
- Ningin 1.13.x veya daha yeni bir sürüm
- Geçerli bir TLS sertifikası
- DNS ile etkin alan adı doğru yapılandırılmış – İnternette erişilebilir olun
- Geçerli bir TLS / SSL sertifikası. Olabilir Let’s Encrypt.
Vestacp'de uzun zaman önce yüklü sadece protokolümüz var TLS 1.2. Birçok öğreticide bunun yeterli olduğunu gördüm nginx.conf Etkinleştirilmesi için TLS 1.3 için aşağıdaki satırı ekleyelim:
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;
YANLIŞ. Eğer bir sunucuda Centos Cu Yönetimi Vestacp- Ningx derlenmedi minimum sürümle OpenSSL 1.1.1.1- ssl_protocols TLSv1.2 TLSv1.3; içinde nginx.conf .. Hiçbir şeye yardımcı olmaz.
[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, yukarıdaki örnekte Nginx 1.22.0 TLS 1.3 sürümü ile uyumludur, ancak kitapçıya yardımcı olmaz OpenSSL 1.0.2k-fips.
Nginx'te TLSV1.3'ü etkinleştirmek için önce çocukluk ve geliştirme paketleri için kitapçıları yüklemelisiniz. Development Tools. Centos 7 komut satırlarında yürütülür:
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. En son sürümü yükleyin OpenSSL
Şu anda en son sürüm OpenSSL 1.1.1p, ama fark ettiğimden zaten opennsl 3 var. Kaynakları şu anda buluyorsunuz 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
Koşmak için çok önemli make test Kitabevi yüklemeden önce. Testte hatalar meydana geldiyse, çalışmayın make install hatalar düzeltilene kadar.
Bir sonraki adımda mevcut ikili dosyaya bir yedekleme yapıyoruz openssl Ve ekliyorum symlink yenisine.
mv /usr/bin/openssl /usr/bin/openssl-backup
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
İçinde /usr/local/openssl/bin uygulamak ldd OpenSSL bağımlılıklarını doğrulamak için. Ayrıca OpenSl sürümünü de doğrulayabiliriz. Emretmek 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
Şu anda en son sürümü yükledik OpenSSL Hangi Destekler TLSv1.3. Sürümleri kontrol edebiliriz TLS / SSL kütüphaneciler tarafından destekleniyor OpenSSL Sipariş üzerine:
[root@north bin]# openssl ciphers -v | awk '{print $2}' | sort | uniq
SSLv3
TLSv1
TLSv1.2
TLSv1.3
[root@north bin]#
Bu, yöneticinin yardımıyla barındırılan web sitelerinin VestaCP Hemen olacaklar TLS 1.3.
Yüklememize rağmen OpenSSL 1.1.1p, Nginx eski versiyonla derlenir 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
Bu adımda yeniden oluşturmak zorundayız OpenSSL Nginx sürümü zaten yüklü Sistemde CentOS / VestaCP. Yukarıda söylediğim gibi, benim durumumda nginx/1.22.0. Sahip olan bir web sunucusu hakkında olmak VestaCP Yönetim sistemi, yeniden derlemeye başlamadan önce Nginx dosyalarını yedeklemek iyidir.
Sistemdeki yedek nginx akımı VestaCP
Arşiv ve sunucuda bir yerde tutun yöneticiler “/etc/nginx” Ve “/usr/local/vesta/nginx“.
KOŞMAK nginx -V ve mevcut modülleri bir dosyaya kaydedin.
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'

Upgrage OpenSl / Centos 7 için Ninx nasıl alılır
Tekrar ediyorum. Eğer varsa Vestacp, Zaten yüklediğiniz Nginx sürümünü indirin. Onları bulduğunuz Nginx sürümleriyle tüm arşivler 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 modüllerini yeniden tamamlıyoruz:
./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
Şimdi Ningx yükledik ve en son sürümüyle derledik. OpenSSL TLSV1.3'ü destekleyebilir.
[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 zaten sunucuya yüklenmişse, kaldırmanız gerekecektir. Derleme, yükseltme ninx'te çalışmaz.
Vestacp'deki alanlar için TLSV1.3'ü nasıl etkinleştirirsiniz?
Dosyada /etc/nginx/nginx.conf Aşağıdaki satırları ekliyoruz:
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';
Alanlar seviyesinde şablonlarda bir şeyi değiştirdim Vestacp ve http/2'yi etkinleştirmek için. Bu nedenle, Let's Encrypt etkinleştirilmiş yeni bir etki alanı (örnek.com) eklerken, aşağıdaki SSL yapılandırma dosyasına sahibim:
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'i yeniden başlatmadan önce, yapılandırmasını test etmeden önce iyidir.
[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
Umarım bu öğretici sizin için yararlıdır ve başarılı olmazsanız, sorunun ayrıntılarını yorumlarda bırakın.