Red Hat Training

A Red Hat training course is available for RHEL 8

1.7. Configuración de la autenticación del certificado de cliente TLS

La autenticación de certificados de cliente permite a los administradores permitir que sólo los usuarios que se autentiquen utilizando un certificado puedan acceder a los recursos del servidor web. Esta sección describe cómo configurar la autenticación de certificados de cliente para el directorio /var/www/html/Example/.

Si el servidor HTTP Apache utiliza el protocolo TLS 1.3, algunos clientes requieren una configuración adicional. Por ejemplo, en Firefox, establezca el parámetro security.tls.enable_post_handshake_auth en el menú about:config a true. Para más detalles, consulte Transport Layer Security versión 1.3 en Red Hat Enterprise Linux 8.

Requisitos previos

Procedimiento

  1. Edite el archivo /etc/httpd/conf/httpd.conf y añada la siguiente configuración a la directiva <VirtualHost> para la que desea configurar la autenticación del cliente:

    <Directory "/var/www/html/Example/">
      SSLVerifyClient require
    </Directory>

    La configuración SSLVerifyClient require define que el servidor debe validar con éxito el certificado del cliente antes de que éste pueda acceder al contenido del directorio /var/www/html/Example/.

  2. Reinicie el servicio httpd:

    # systemctl restart httpd

Pasos de verificación

  1. Utilice la utilidad curl para acceder a la URL https://example.com/Example/ sin autenticación de cliente:

    $ curl https://example.com/Example/
    curl: (56) OpenSSL SSL_read: error:1409445C:SSL routines:ssl3_read_bytes:tlsv13 alert certificate required, errno 0

    El error indica que el servidor web requiere un certificado de autentificación del cliente.

  2. Pase la clave privada y el certificado del cliente, así como el certificado de la CA a curl para acceder a la misma URL con autenticación de cliente:

    $ curl --cacert ca.crt --key client.key --cert client.crt https://example.com/Example/

    Si la solicitud tiene éxito, curl muestra el archivo index.html almacenado en el directorio /var/www/html/Example/.

Recursos adicionales