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
- El cifrado TLS está habilitado en el servidor como se describe en Sección 1.6.1, “Cómo añadir el cifrado TLS a un servidor HTTP Apache”.
Procedimiento
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/
.Reinicie el servicio
httpd
:# systemctl restart httpd
Pasos de verificación
Utilice la utilidad
curl
para acceder a la URLhttps://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.
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 archivoindex.html
almacenado en el directorio/var/www/html/Example/
.
Recursos adicionales
-
Para más detalles sobre la autenticación de clientes, consulte la documentación de
mod_ssl Configuration How-To
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”.