18
0
Fork 0

Compléments SSL Client

This commit is contained in:
Ludovic Poujol 2020-12-14 17:55:39 +01:00
parent 4ca7cd8c3f
commit f9ba7d0f28
1 changed files with 36 additions and 0 deletions

View File

@ -335,6 +335,42 @@ qu'à partir de Debian 8.
`SSL_ERROR_RX_RECORD_TOO_LONG` = possible que la résolution IPv6 ne se fait pas correctement. `SSL_ERROR_RX_RECORD_TOO_LONG` = possible que la résolution IPv6 ne se fait pas correctement.
### SSL Client
Il est aussi possible de faire du SSL client pour authentifier celui-ci. Pour cela vous devez avoir une CA en mesure d'émetre des certificats SSL pour vos clients. Vous pouvez utiliser notre outil [Shellpki](https://gitea.evolix.org/evolix/shellpki)
Pré-requis : Le vhost doit être en SSL.
On va alors ajouter les directives suivante dans le(s) vhosts qui doivent faire de l'authentification client :
~~~
# SSL Client, CA example.net
SSLCACertificateFile /etc/ssl/certs/example.net_CA_R01.pem
#SSLCARevocationFile /etc/ssl/crl/example.net_CA_R01.pem
SSLVerifyClient require
SSLVerifyDepth 1
~~~
Explication rapide des directives :
* `SSLCACertificateFile` : Chemin vers le certificat faisant autorité
* `SSLCARevocationFile` : Chemin vers la liste de révocation
* `SSLVerifyClient` :
* *require* : Le client **doit** présenter un certificat valide
* *optional* : Le client **peut** présenter un certificat valide
* *none* : Le client n'as pas à présenter un certificat valide
* `SSLVerifyDepth` : La profondeur de vérification
Après, au travers de la configuration, on a accès aux variables donnant des informations sur le certificat client. On peut ainsi faire facilement des autorisations avec des expressions régulières pour autoriser un groupe de client selon le CN du certificat :
~~~
Require expr "%{SSL_CLIENT_S_DN_CN} =~ /.*\.france\.example\.net/"
~~~
Voir la documentation du [module SSL d'Apache](https://httpd.apache.org/docs/2.4/fr/mod/mod_ssl.html)
## Logs ## Logs
<https://httpd.apache.org/docs/2.4/fr/logs.html> <https://httpd.apache.org/docs/2.4/fr/logs.html>