Comment l’authentification par certificate client fonctionne-t-elle par répertoire?

Basé sur la documentation, Apache permet de demander une authentification de certificate client pour un répertoire et ne le demande pas pour un autre répertoire. http://httpd.apache.org/docs/2.2/ssl/ssl_howto.html#arbitraryclients

Comment est-ce possible?

J’ai supposé que le premier protocole TLS / SSL effectue une prise de contact (y compris la validation du certificate client) et que seule la requête HTTP est envoyée sur le canal sécurisé. Et cette requête HTTP contient une URL.

Il semble donc que vous ayez besoin d’une URL (un répertoire) pour effectuer (ou ignorer) l’authentification du certificate client.

Donc, ce n’est pas clair pour moi, comment Apache peut-il vérifier les URL en premier et décider plus tard s’il faut ou non demander une authentification de certificate client.

Il utilise la renégociation SSL / TLS: le serveur envoie un message TLS Hello Request pour demander au client de déclencher une nouvelle prise de contact en envoyant un nouveau message Client Hello (et cette fois le serveur enverra une demande de certificate après son message Hello Server).

Le message Hello Request pourrait en principe se produire à tout moment pendant l’échange HTTP. Pour cette fonctionnalité particulière, le serveur l’envoie juste après avoir reçu la demande (sachant par conséquent quelle ressource a été demandée), mais avant d’envoyer sa réponse.