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_ssl
# dnf install mod_sslCopy to Clipboard Copied! Toggle word wrap Toggle overflow Edite 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.com
Nombre del servidor example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow ImportanteEl 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.com
ServidorAlias www.example.com server.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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"
SSLCertificateKeyFile "/etc/pki/tls/private/example.com.key" SSLCertificateFile "/etc/pki/tls/certs/example.com.crt" SSLCACertificateFile "/etc/pki/tls/certs/ca.crt"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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.key
# chown root:root /etc/pki/tls/private/example.com.key # chmod 600 /etc/pki/tls/private/example.com.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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
443en el firewall local:firewall-cmd --permanent --add-port=443 firewall-cmd --reload
# firewall-cmd --permanent --add-port=443 # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow Reinicie el servicio
httpd:systemctl restart httpd
# systemctl restart httpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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 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”.