Requisits
Abans que comencis
Instal·leu el client acme.sh i obteniu un certificat TLS de Let's Encrypt
Instal·leu Apache
Configureu Apache per a TLS 1.3
TLS 1.3 és una versió del protocol Transport Layer Security (TLS) que es va publicar el 2018 com a estàndard proposat a RFC 8446. Ofereix millores de seguretat i rendiment respecte als seus predecessors.
Aquesta guia mostrarà com habilitar TLS 1.3 mitjançant el servidor web Apache a CentOS 8.
Requisits
- Instància Vultr Cloud Compute (VC2) amb CentOS 8.
- Un nom de domini vàlid i degudament configurats
A/ AAAA/ CNAMEregistres DNS del seu domini.
- Un certificat TLS vàlid. En obtindrem un de Let's Encrypt.
- Versió d'Apache
2.4.36o superior.
- Versió OpenSSL
1.1.1o superior.
Abans que comencis
Comproveu la versió de CentOS.
cat /etc/centos-release
# CentOS Linux release 8.0.1905 (Core)
Creeu un non-rootcompte d'usuari nou amb sudoaccés i canvieu-hi.
useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe
NOTA: Substituïu-lo johndoepel vostre nom d'usuari.
Configura la zona horària.
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Assegureu-vos que el vostre sistema estigui actualitzat.
sudo yum update
Instal·leu els paquets necessaris.
sudo yum install -y socat git
Desactiveu SELinux i el tallafoc.
sudo setenforce 0 ; sudo systemctl stop firewalld ; sudo systemctl disable firewalld
Instal·leu el acme.shclient i obteniu un certificat TLS de Let's Encrypt
Instal·leu acme.sh.
sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail your_email@example.com
cd ~
source ~/.bashrc
Comproveu la versió.
/etc/letsencrypt/acme.sh --version
# v2.8.2
Obteniu certificats RSA i ECDSA per al vostre domini.
# RSA
sudo /etc/letsencrypt/acme.sh --issue --standalone -d example.com --ocsp-must-staple --keylength 2048
# ECC/ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone -d example.com --ocsp-must-staple --keylength ec-256
NOTA: Substituïu les example.comordres pel vostre nom de domini.
Creeu directoris intel·ligents per emmagatzemar els vostres certificats i claus. Farem servir /etc/letsencrypt.
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Instal·leu i copieu certificats a /etc/letsencrypt.
# RSA
sudo /etc/letsencrypt/acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem
# ECC/ECDSA
sudo /etc/letsencrypt/acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem
Després d'executar les ordres anteriors, els vostres certificats i claus estaran a les ubicacions següents:
- RSA :
/etc/letsencrypt/example.com
- ECC / ECDSA :
/etc/letsencrypt/example.com_ecc
Instal·leu Apache
Apache va afegir suport per a TLS 1.3 a la versió 2.4.36. El sistema CentOS 8 inclou Apache i OpenSSL que admeten TLS 1.3 des de la caixa, de manera que no cal crear una versió personalitzada.
Baixeu i instal·leu la darrera versió 2.4 d'Apache i el seu mòdul per a SSL mitjançant el yumgestor de paquets.
sudo yum install -y httpd mod_ssl
Comproveu la versió.
sudo httpd -v
# Server version: Apache/2.4.37 (centos)
# Server built: Jul 30 2019 19:56:12
Inicieu i activeu Apache.
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Ara que hem instal·lat Apache amb èxit, estem preparats per configurar-lo per començar a utilitzar TLS 1.3 al nostre servidor.
Executeu sudo vim /etc/httpd/conf.d/example.com.conf, i ompliu el fitxer amb la configuració bàsica següent.
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
# RSA
SSLCertificateFile "/etc/letsencrypt/example.com/fullchain.pem"
SSLCertificateKeyFile "/etc/letsencrypt/example.com/private.key"
# ECC
SSLCertificateFile "/etc/letsencrypt/example.com_ecc/fullchain.pem"
SSLCertificateKeyFile "/etc/letsencrypt/example.com_ecc/private.key"
</VirtualHost>
</IfModule>
Deseu el fitxer i sortiu amb :+ W+ Q.
Comproveu la configuració.
sudo apachectl configtest
Torneu a carregar Apache per activar la nova configuració.
sudo systemctl reload httpd.service
Obriu el vostre lloc mitjançant el protocol HTTPS al vostre navegador web. Per verificar TLS 1.3, podeu utilitzar les eines de desenvolupament del navegador o el servei SSL Labs. Les captures de pantalla següents mostren la pestanya de seguretat de Chrome amb TLS 1.3 en acció.

![Com habilitar TLS 1.3 a Apache a CentOS 8 Com habilitar TLS 1.3 a Apache a CentOS 8]()
Heu activat correctament TLS 1.3 a Apache al vostre servidor CentOS 8. La versió final de TLS 1.3 es va definir l'agost de 2018, així que no hi ha millor moment per començar a adoptar aquesta nova tecnologia.