Kuidas lubada TLS 1.3 Apache'is ja Nginxis
TLS 1.3 on transpordikihi turvalisuse (TLS) uusim versioon ja see põhineb olemasolevatel 1.2 spetsifikatsioonidel koos õige IETF-i standardiga: RFC 8446. See tagab eelkäijatega võrreldes suurema turvalisuse ja suurema jõudluse.
Selles artiklis näitame teile üksikasjalikku juhendit kehtiva TLS-sertifikaadi hankimiseks ja uusima TLS 1.3 versiooniprotokolli lubamiseks oma domeenis Apache'i või Nginxi veebiserverites.
- Apache versioon 2.4.37 või uuem.
- Nginxi versioon 1.13.0 või uuem.
- OpenSSL-i versioon 1.1.1 või uuem.
- Kehtiv domeeninimi õigesti konfigureeritud DNS-kirjetega.
- Kehtiv TLS-sertifikaat.
Installige TLS-i sertifikaat rakendusest Let’s Encrypt
Let’s Encryptist tasuta SSL-sertifikaadi saamiseks peate installima Acme.sh kliendi ja ka mõned vajalikud paketid Linuxi süsteemi, nagu näidatud.
# apt install -y socat git [On Debian/Ubuntu] # dnf install -y socat git [On RHEL/CentOS/Fedora] # mkdir /etc/letsencrypt # git clone https://github.com/Neilpang/acme.sh.git # cd acme.sh # ./acme.sh --install --home /etc/letsencrypt --accountemail [email # cd ~ # /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength 2048 # /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength ec-256
MÄRKUS. Asendage ülaltoodud käsk example.com
oma tegeliku domeeninimega.
Kui SSL-sertifikaat on installitud, saate jätkata TLS 1.3 lubamist oma domeenis, nagu allpool selgitatud.
Luba Nginxil TLS 1.3
Nagu ülaltoodud nõuetes mainisin, toetatakse TLS 1.3 alates versioonist Nginx 1.13. Kui kasutate Nginxi vanemat versiooni, peate kõigepealt uuemale versioonile üle minema.
# apt install nginx # yum install nginx
Kontrollige Nginxi versiooni ja OpenSSL-i versiooni, mille põhjal Nginx kompileeriti (veenduge, et nginxi versioon oleks vähemalt 1.14 ja openssl versioon 1.1.1).
# nginx -V
nginx version: nginx/1.14.1 built by gcc 8.2.1 20180905 (Red Hat 8.2.1-3) (GCC) built with OpenSSL 1.1.1 FIPS 11 Sep 2018 TLS SNI support enabled ....
Nüüd alustage, lubage ja kontrollige nginxi installimist.
# systemctl start nginx.service # systemctl enable nginx.service # systemctl status nginx.service
Nüüd avage lemmikredaktori abil fail nginx vhost konfiguratsioon /etc/nginx/conf.d/example.com.conf
.
# vi /etc/nginx/conf.d/example.com.conf
ja leidke direktiiv ssl_protocols
ja lisage rea lõppu TLSv1.3, nagu allpool näidatud
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.com; # RSA ssl_certificate /etc/letsencrypt/example.com/fullchain.cer; ssl_certificate_key /etc/letsencrypt/example.com/example.com.key; # ECDSA ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer; ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key; ssl_protocols TLSv1.2 TLSv1.3; 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'; ssl_prefer_server_ciphers on; }
Lõpuks kontrollige konfiguratsiooni ja laadige Nginx uuesti.
# nginx -t # systemctl reload nginx.service
Luba Apache'is TLS 1.3
Alates Apache 2.4.37-st saate kasutada TLS 1.3 eeliseid. Kui kasutate Apache vanemat versiooni, peate kõigepealt uuemale versioonile üle minema.
# apt install apache2 # yum install httpd
Pärast installimist saate kontrollida Apache'i ja OpenSSL-i versiooni, mille järgi Apache kompileeriti.
# httpd -V # openssl version
Nüüd alustage, lubage ja kontrollige nginxi installimist.
-------------- On Debian/Ubuntu -------------- # systemctl start apache2.service # systemctl enable apache2.service # systemctl status apache2.service -------------- On RHEL/CentOS/Fedora -------------- # systemctl start httpd.service # systemctl enable httpd.service # systemctl status httpd.service
Nüüd avage oma lemmikredaktori abil Apache virtuaalse hosti konfiguratsioonifail.
# vi /etc/httpd/conf.d/vhost.conf OR # vi /etc/apache2/apache2.conf
ja leidke ssl_protocols
-direktiiv ja lisage rea lõppu TLSv1.3, nagu allpool näidatud.
<VirtualHost *:443> SSLEngine On # RSA ssl_certificate /etc/letsencrypt/example.com/fullchain.cer; ssl_certificate_key /etc/letsencrypt/example.com/example.com.key; # ECDSA ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer; ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key; ssl_protocols TLSv1.2 TLSv1.3 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'; ssl_prefer_server_ciphers on; SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem ServerAdmin [email ServerName www.example.com ServerAlias example.com #DocumentRoot /data/httpd/htdocs/example.com/ DocumentRoot /data/httpd/htdocs/example_hueman/ # Log file locations LogLevel warn ErrorLog /var/log/httpd/example.com/httpserror.log CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/example.com/httpsaccess.log.%Y-%m-%d 86400" combined </VirtualHost>
Lõpuks kontrollige konfiguratsiooni ja laadige Apache uuesti.
-------------- On Debian/Ubuntu -------------- # apache2 -t # systemctl reload apache2.service -------------- On RHEL/CentOS/Fedora -------------- # httpd -t # systemctl reload httpd.service
Veenduge, et sait kasutab TLS 1.3
Kui olete veebiserveri kaudu seadistanud, saate Chrome 70+ versioonis Chrome'i brauseri arendustööriistade abil kontrollida, kas teie sait käepigistab TLS 1.3 protokolli.
See on kõik. Olete oma domeenis Apache või Nginx veebiserverites hostitud TLS 1.3 protokolli edukalt lubanud. Kui teil on selle artikli kohta küsimusi, küsige julgelt allpool olevast kommentaaride jaotisest.