1.9. Configuration de l'authentification du certificat client TLS
L'authentification par certificat client permet aux administrateurs d'autoriser uniquement les utilisateurs qui s'authentifient à l'aide d'un certificat à accéder aux ressources du serveur web. Cette section explique comment configurer l'authentification par certificat client pour l'annuaire /var/www/html/Example/
.
Si le serveur HTTP Apache utilise le protocole TLS 1.3, certains clients nécessitent une configuration supplémentaire. Par exemple, dans Firefox, définissez le paramètre security.tls.enable_post_handshake_auth
dans le menu about:config
sur true
. Pour plus de détails, voir Transport Layer Security version 1.3 dans Red Hat Enterprise Linux 8.
Conditions préalables
- Le cryptage TLS est activé sur le serveur comme décrit dans Ajout du cryptage TLS à un serveur HTTP Apache.
Procédure
Modifiez le fichier
/etc/httpd/conf/httpd.conf
et ajoutez les paramètres suivants à la directive<VirtualHost>
pour laquelle vous souhaitez configurer l'authentification du client :<Directory "/var/www/html/Example/"> SSLVerifyClient require </Directory>
<Directory "/var/www/html/Example/"> SSLVerifyClient require </Directory>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Le paramètre
SSLVerifyClient require
définit que le serveur doit valider avec succès le certificat du client avant que ce dernier puisse accéder au contenu du répertoire/var/www/html/Example/
.Redémarrez le service
httpd
:systemctl restart httpd
# systemctl restart httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification steps
Utilisez l'utilitaire
curl
pour accéder à l'URLhttps://example.com/Example/
sans authentification du client :curl https://example.com/Example/
$ curl https://example.com/Example/ curl: (56) OpenSSL SSL_read: error:1409445C:SSL routines:ssl3_read_bytes:tlsv13 **alert certificate required**, errno 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L'erreur indique que le serveur web nécessite une authentification par certificat client.
Transmettez la clé privée et le certificat du client, ainsi que le certificat de l'autorité de certification à
curl
pour accéder à la même URL avec l'authentification du client :curl --cacert ca.crt --key client.key --cert client.crt https://example.com/Example/
$ curl --cacert ca.crt --key client.key --cert client.crt https://example.com/Example/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la demande aboutit,
curl
affiche le fichierindex.html
stocké dans le répertoire/var/www/html/Example/
.