Red Hat Training

A Red Hat training course is available for RHEL 8

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

  1. Instale el paquete mod_ssl:

    # dnf install mod_ssl
  2. Edite el archivo /etc/httpd/conf.d/ssl.conf y añada la siguiente configuración a la directiva <VirtualHost _default_:443>:

    1. Establezca el nombre del servidor:

      Nombre del servidor example.com
      Importante

      El nombre del servidor debe coincidir con la entrada establecida en el campo Common Name del certificado.

    2. Opcional: Si el certificado contiene nombres de host adicionales en el campo Subject Alt Names (SAN), puede configurar mod_ssl para que proporcione cifrado TLS también para estos nombres de host. Para configurarlo, añada el parámetro ServerAliases con los nombres correspondientes:

      ServidorAlias www.example.com server.example.com
    3. 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"
  3. 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
    Aviso

    Si 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.

  4. Abra el puerto 443 en el firewall local:

    # firewall-cmd --permanent --add-port=443
    # firewall-cmd --reload
  5. Reinicie el servicio httpd:

    # systemctl restart httpd
    Nota

    Si 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