1.6. Configuración del cifrado TLS en un servidor HTTP Apache
Por defecto, Apache proporciona contenido a los clientes utilizando una conexión HTTP sin cifrar. Esta sección describe cómo habilitar el cifrado TLS y configurar las opciones más frecuentes relacionadas con el cifrado en un servidor HTTP Apache.
Requisitos previos
- El servidor HTTP Apache está instalado y funcionando.
1.6.1. Cómo añadir el cifrado TLS a un servidor HTTP Apache
Esta sección describe cómo activar el cifrado TLS en un servidor HTTP Apache para el dominio example.com
.
Requisitos previos
- El servidor HTTP Apache está instalado y funcionando.
La clave privada se almacena en el archivo
/etc/pki/tls/private/example.com.key
.Para obtener detalles sobre la creación de una clave privada y una solicitud de firma de certificado (CSR), así como para solicitar un certificado a una autoridad de certificación (CA), consulte la documentación de su CA. Como alternativa, si su CA admite el protocolo ACME, puede utilizar el módulo
mod_md
para automatizar la recuperación y el aprovisionamiento de certificados TLS.-
El certificado TLS se almacena en el archivo
/etc/pki/tls/private/example.com.crt
. Si utiliza una ruta diferente, adapte los pasos correspondientes del procedimiento. -
El certificado CA se almacena en el archivo
/etc/pki/tls/private/ca.crt
. Si utiliza una ruta diferente, adapte los pasos correspondientes del procedimiento. - Los clientes y el servidor web resuelven el nombre de host del servidor a la dirección IP del servidor web.
Procedimiento
Instale el paquete
mod_ssl
:# dnf install mod_ssl
Edite el archivo
/etc/httpd/conf.d/ssl.conf
y añada la siguiente configuración a la directiva<VirtualHost _default_:443>
:Establezca el nombre del servidor:
Nombre del servidor example.com
ImportanteEl nombre del servidor debe coincidir con la entrada establecida en el campo
Common Name
del certificado.Opcional: Si el certificado contiene nombres de host adicionales en el campo
Subject Alt Names
(SAN), puede configurarmod_ssl
para que proporcione cifrado TLS también para estos nombres de host. Para configurarlo, añada el parámetroServerAliases
con los nombres correspondientes:ServidorAlias www.example.com server.example.com
Establezca las rutas de acceso a la clave privada, el certificado del servidor y el certificado de la CA:
SSLCertificateKeyFile "/etc/pki/tls/private/example.com.key" SSLCertificateFile "/etc/pki/tls/certs/example.com.crt" SSLCACertificateFile "/etc/pki/tls/certs/ca.crt"
Por razones de seguridad, configure que sólo el usuario
root
pueda acceder al archivo de la clave privada:# chown root:root /etc/pki/tls/private/example.com.key # chmod 600 /etc/pki/tls/private/example.com.key
AvisoSi los usuarios no autorizados accedieron a la clave privada, revoque el certificado, cree una nueva clave privada y solicite un nuevo certificado. En caso contrario, la conexión TLS deja de ser segura.
Abra el puerto
443
en el firewall local:# firewall-cmd --permanent --add-port=443 # firewall-cmd --reload
Reinicie el servicio
httpd
:# systemctl restart httpd
NotaSi protegió el archivo de clave privada con una contraseña, deberá introducirla cada vez que se inicie el servicio
httpd
.
Pasos de verificación
-
Utilice un navegador y conéctese a
https://example.com
.
Recursos adicionales
-
Para más detalles sobre la configuración de TLS, consulte la documentación de
SSL/TLS Encryption
en el manual de Apache. Para más detalles sobre la instalación del manual, consulte Sección 1.8, “Instalación del manual del servidor HTTP Apache”.