TLS 1.3 inschakelen in Apache en Nginx
TLS 1.3 is de nieuwste versie van het Transport Layer Security (TLS) protocol en is gebaseerd op de bestaande 1.2-specificaties met de juiste IETF-standaard: RFC 8446. Het biedt sterkere beveiliging en hogere prestatieverbeteringen ten opzichte van zijn voorgangers.
In dit artikel laten we u een stapsgewijze handleiding zien om een geldig TLS-certificaat te verkrijgen en het nieuwste TLS 1.3 versieprotocol in te schakelen op uw domein dat wordt gehost op Apache of Nginx webservers.
Vereisten:
- Apache versie 2.4.37 of hoger.
- Nginx versie 1.13.0 of hoger.
- OpenSSL versie 1.1.1 of hoger.
- Een geldige domeinnaam met correct geconfigureerde DNS-records.
- Een geldig TLS-certificaat.
Installeer het TLS-certificaat van Let's Encrypt
Om een gratis SSL-certificaat van Let's Encrypt te verkrijgen, moet u de Acme.sh-client en enkele benodigde pakketten op een Linux-systeem installeren, zoals weergegeven.
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
OPMERKING: Vervang example.com
in de bovenstaande opdracht door uw echte domeinnaam.
Zodra u het SSL-certificaat heeft geïnstalleerd, kunt u verder gaan om TLS 1.3 in te schakelen op uw domein, zoals hieronder uitgelegd.
Schakel TLS 1.3 in op Nginx
Zoals ik in de bovenstaande vereisten vermeldde, wordt TLS 1.3 ondersteund vanaf de Nginx 1.13 versie. Als u de oudere Nginx-versie gebruikt, moet u eerst upgraden naar de nieuwste versie.
apt install nginx
yum install nginx
Controleer de Nginx versie en de OpenSSL versie waartegen Nginx is gecompileerd (zorg ervoor dat de nginx versie minimaal 1.14 is en openssl versie 1.1.1).
nginx -V
Voorbeelduitvoer
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, schakel en verifieer nu de nginx-installatie.
systemctl start nginx.service
systemctl enable nginx.service
systemctl status nginx.service
Open nu het nginx vhost-configuratiebestand /etc/nginx/conf.d/example.com.conf
met uw favoriete editor.
vi /etc/nginx/conf.d/example.com.conf
en zoek de ssl_protocols
richtlijn en voeg TLSv1.3 toe aan het einde van de regel, zoals hieronder weergegeven
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;
}
Controleer ten slotte de configuratie en laad Nginx opnieuw.
nginx -t
systemctl reload nginx.service
Schakel TLS 1.3 in Apache in
Vanaf Apache 2.4.37 kunt u profiteren van TLS 1.3. Als u de oudere versie van Apache gebruikt, moet u eerst upgraden naar de nieuwste versie.
apt install apache2
yum install httpd
Eenmaal geïnstalleerd, kunt u de Apache- en OpenSSL-versie verifiëren waartegen Apache is gecompileerd.
httpd -V
openssl version
Start, schakel en verifieer nu de nginx-installatie.
-------------- 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
Open nu het configuratiebestand van de virtuele Apache-host met uw favoriete editor.
vi /etc/httpd/conf.d/vhost.conf
OR
vi /etc/apache2/apache2.conf
en zoek de ssl_protocols
richtlijn en voeg TLSv1.3 toe aan het einde van de regel, zoals hieronder weergegeven.
<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>
Controleer ten slotte de configuratie en laad Apache opnieuw.
-------------- On Debian/Ubuntu --------------
apache2 -t
systemctl reload apache2.service
-------------- On RHEL/CentOS/Fedora --------------
httpd -t
systemctl reload httpd.service
Controleer of de site TLS gebruikt 1.3
Nadat u de configuratie via een webserver heeft uitgevoerd, kunt u controleren of uw site handshaking uitvoert via het TLS 1.3-protocol met behulp van Chrome-browserontwikkelingstools in de Chrome 70+-versie.
Dat is alles. U heeft het TLS 1.3-protocol ingeschakeld op uw domein dat wordt gehost op Apache- of Nginx-webservers. Als u vragen heeft over dit artikel, kunt u deze stellen in het commentaargedeelte hieronder.