Slik aktiverer du TLS 1.3 i Apache og Nginx
TLS 1.3 er den nyeste versjonen av Transport Layer Security (TLS)-protokollen, og den er basert på de eksisterende 1.2-spesifikasjonene med riktig IETF-standard: RFC 8446. Den gir sterkere sikkerhet og høyere ytelsesforbedringer i forhold til forgjengerne.
I denne artikkelen vil vi vise deg en trinnvis veiledning for å få et gyldig TLS-sertifikat og aktivere den nyeste TLS 1.3-versjonsprotokollen på domenet ditt som er vert på Apache eller Nginx nettjenere.
Krav:
- Apache versjon 2.4.37 eller nyere.
- Nginx versjon 1.13.0 eller nyere.
- OpenSSL versjon 1.1.1 eller nyere.
- Et gyldig domenenavn med riktig konfigurerte DNS-poster.
- Et gyldig TLS-sertifikat.
Installer TLS-sertifikat fra Let's Encrypt
For å få et gratis SSL-sertifikat fra La oss kryptere, må du installere Acme.sh-klienten og også noen få nødvendige pakker på Linux-systemet som vist.
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
MERK: Erstatt example.com
i kommandoen ovenfor med ditt virkelige domenenavn.
Når du har installert SSL-sertifikat, kan du fortsette videre for å aktivere TLS 1.3 på domenet ditt som forklart nedenfor.
Aktiver TLS 1.3 på Nginx
Som jeg nevnte i kravene ovenfor, støttes TLS 1.3 fra og med Nginx 1.13-versjonen. Hvis du kjører den eldre Nginx-versjonen, må du først oppgradere til den nyeste versjonen.
apt install nginx
yum install nginx
Sjekk Nginx-versjonen og OpenSSL-versjonen som Nginx ble kompilert mot (sørg for at nginx-versjonen er minst 1.14 og openssl versjon 1.1.1).
nginx -V
Eksempelutgang
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
....
Start, aktiver og bekreft nginx-installasjonen.
systemctl start nginx.service
systemctl enable nginx.service
systemctl status nginx.service
Åpne nå nginx vhost-konfigurasjonsfilen /etc/nginx/conf.d/example.com.conf
ved å bruke din favorittredigerer.
vi /etc/nginx/conf.d/example.com.conf
og finn ssl_protocols
-direktivet og legg til TLSv1.3 på slutten av linjen som vist nedenfor
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;
}
Til slutt, verifiser konfigurasjonen og last inn Nginx på nytt.
nginx -t
systemctl reload nginx.service
Aktiver TLS 1.3 i Apache
Fra og med Apache 2.4.37 kan du dra nytte av TLS 1.3. Hvis du kjører den eldre versjonen av Apache, må du først oppgradere til den nyeste versjonen.
apt install apache2
yum install httpd
Når den er installert, kan du bekrefte Apache- og OpenSSL-versjonen som Apache ble kompilert mot.
httpd -V
openssl version
Start, aktiver og bekreft nginx-installasjonen.
-------------- 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
Åpne nå konfigurasjonsfilen for den virtuelle Apache-verten ved å bruke din favorittredigerer.
vi /etc/httpd/conf.d/vhost.conf
OR
vi /etc/apache2/apache2.conf
og finn ssl_protocols
-direktivet og legg til TLSv1.3 på slutten av linjen som vist nedenfor.
<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>
Til slutt, verifiser konfigurasjonen og last inn Apache på nytt.
-------------- On Debian/Ubuntu --------------
apache2 -t
systemctl reload apache2.service
-------------- On RHEL/CentOS/Fedora --------------
httpd -t
systemctl reload httpd.service
Bekreft at nettstedet bruker TLS 1.3
Når du har konfigurert via en nettserver, kan du sjekke at nettstedet ditt håndshaker over TLS 1.3-protokollen ved å bruke utviklingsverktøy for Chrome-nettleseren på Chrome 70+-versjonen.
Det er alt. Du har aktivert TLS 1.3-protokollen på domenet ditt som er vert på Apache- eller Nginx-nettservere. Hvis du har spørsmål om denne artikkelen, spør gjerne i kommentarfeltet nedenfor.