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 Copiar enlaceEnlace copiado en el portapapeles!
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_mdpara 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_sslEdite el archivo
/etc/httpd/conf.d/ssl.confy añada la siguiente configuración a la directiva<VirtualHost _default_:443>:Establezca el nombre del servidor:
Nombre del servidor example.comImportanteEl nombre del servidor debe coincidir con la entrada establecida en el campo
Common Namedel certificado.Opcional: Si el certificado contiene nombres de host adicionales en el campo
Subject Alt Names(SAN), puede configurarmod_sslpara que proporcione cifrado TLS también para estos nombres de host. Para configurarlo, añada el parámetroServerAliasescon los nombres correspondientes:ServidorAlias www.example.com server.example.comEstablezca 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
rootpueda 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.keyAvisoSi 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
443en el firewall local:# firewall-cmd --permanent --add-port=443 # firewall-cmd --reloadReinicie el servicio
httpd:# systemctl restart httpdNotaSi 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 Encryptionen 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”.