20.10. 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 my_company.idm.example.com. Cette section explique comment configurer l'authentification par certificat client pour l'annuaire /var/www/html/Example/
.
Si le serveur my_company.idm.example.com 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 my_company.idm.example.com comme décrit dans Ajouter le 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>
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
Verification steps
Utilisez l'utilitaire
curl
pour accéder à l'URLhttps://my_company.idm.example.com/Example/
sans authentification du client :$ curl https://my_company.idm.example.com/Example/ curl: (56) OpenSSL SSL_read: error:1409445C:SSL routines:ssl3_read_bytes:tlsv13 **alert certificate required**, errno 0
L'erreur indique que le serveur web my_company.idm.example.com 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://my_company.idm.example.com/Example/
Si la demande aboutit,
curl
affiche le fichierindex.html
stocké dans le répertoire/var/www/html/Example/
.
Ressources supplémentaires