Kaip įjungti TLS 1.3 „Apache“ ir „Nginx“.
TLS 1.3 yra naujausia Transport Layer Security (TLS) protokolo versija, pagrįsta esamomis 1.2 specifikacijomis su tinkamu IETF standartu: RFC 8446. Jis užtikrina didesnį saugumą ir didesnį našumą, palyginti su jo pirmtakais.
Šiame straipsnyje parodysime nuoseklų vadovą, kaip gauti galiojantį TLS sertifikatą ir įgalinti naujausios TLS 1.3 versijos protokolą domene, priglobtame Apache arba Nginx žiniatinklio serveriai.
Reikalavimai:
- Apache versija 2.4.37 arba naujesnė.
- Nginx 1.13.0 ar naujesnė versija.
- OpenSSL 1.1.1 ar naujesnė versija.
- Galiojantis domeno pavadinimas su tinkamai sukonfigūruotais DNS įrašais.
- Galiojantis TLS sertifikatas.
Įdiekite TLS sertifikatą iš Let's Encrypt
Norėdami gauti nemokamą SSL sertifikatą iš Leisk šifruoti, turite įdiegti Acme.sh klientą ir kelis reikalingus paketus Linux sistemoje, kaip parodyta.
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
PASTABA: pakeiskite example.com
anksčiau pateiktoje komandoje tikru domeno pavadinimu.
Įdiegę SSL sertifikatą, galite toliau įgalinti TLS 1.3 savo domene, kaip paaiškinta toliau.
Įgalinkite TLS 1.3 „Nginx“.
Kaip minėjau anksčiau pateiktuose reikalavimuose, TLS 1.3 palaikoma nuo Nginx 1.13 versijos. Jei naudojate senesnę Nginx versiją, pirmiausia turite atnaujinti į naujausią versiją.
apt install nginx
yum install nginx
Patikrinkite Nginx ir OpenSSL versijas, pagal kurias buvo sudarytas Nginx (įsitikinkite, kad nginx versija yra bent 1.14 ir openssl versija 1.1.1).
nginx -V
Pavyzdžio išvestis
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
....
Dabar paleiskite, įgalinkite ir patikrinkite „nginx“ diegimą.
systemctl start nginx.service
systemctl enable nginx.service
systemctl status nginx.service
Dabar atidarykite nginx vhost konfigūracijos /etc/nginx/conf.d/example.com.conf
failą naudodami mėgstamą redaktorių.
vi /etc/nginx/conf.d/example.com.conf
ir suraskite direktyvą ssl_protocols
ir eilutės pabaigoje pridėkite TLSv1.3, kaip parodyta toliau
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;
}
Galiausiai patikrinkite konfigūraciją ir iš naujo įkelkite „Nginx“.
nginx -t
systemctl reload nginx.service
Įgalinkite TLS 1.3 „Apache“.
Pradedant nuo Apache 2.4.37, galite pasinaudoti TLS 1.3 pranašumais. Jei naudojate senesnę Apache versiją, pirmiausia turite naujovinti į naujausią versiją.
apt install apache2
yum install httpd
Įdiegę galite patikrinti „Apache“ ir „OpenSSL“ versiją, pagal kurią buvo sudaryta „Apache“.
httpd -V
openssl version
Dabar paleiskite, įgalinkite ir patikrinkite „nginx“ diegimą.
-------------- 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
Dabar atidarykite „Apache“ virtualaus pagrindinio kompiuterio konfigūracijos failą naudodami mėgstamą redaktorių.
vi /etc/httpd/conf.d/vhost.conf
OR
vi /etc/apache2/apache2.conf
ir suraskite direktyvą ssl_protocols
ir eilutės pabaigoje pridėkite TLSv1.3, kaip parodyta toliau.
<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>
Galiausiai patikrinkite konfigūraciją ir iš naujo įkelkite „Apache“.
-------------- On Debian/Ubuntu --------------
apache2 -t
systemctl reload apache2.service
-------------- On RHEL/CentOS/Fedora --------------
httpd -t
systemctl reload httpd.service
Patikrinkite, ar svetainė naudoja TLS 1.3
Sukonfigūravę naudodami žiniatinklio serverį, galite patikrinti, ar svetainė veikia per TLS 1.3 protokolą, naudodami „Chrome“ naršyklės kūrimo įrankius 70 ir naujesnės versijos „Chrome“.
Tai viskas. Sėkmingai įgalinote TLS 1.3 protokolą savo domene, esančiame „Apache“ arba „Nginx“ žiniatinklio serveriuose. Jei turite klausimų apie šį straipsnį, nedvejodami klauskite žemiau esančiame komentarų skyriuje.