根据文档,Apache 允许为一个目录请求客户端证书身份验证,而不要为另一个目录请求它。 http://httpd.apache.org/docs/2.2/ssl/ssl_howto.html#arbitraryclients
这怎么可能?
我假设首先 TLS/SSL 进行握手(包括客户端证书验证),然后才通过安全通道发送 HTTP 请求。并且这个 HTTP 请求包含一个 URL。
因此,它看起来像是获得了您需要执行(或跳过)客户端证书身份验证的 URL(目录)。
所以,我不清楚 Apache 如何先检查 URL,然后再决定是否请求客户端证书身份验证。
最佳答案
它使用 SSL/TLS 重新协商:服务器发送 TLS Hello Request message要求客户端通过发送新的 Client Hello 消息来触发新的握手(这次服务器将在其 Server Hello 消息后发送证书请求)。
Hello Request 消息原则上可以在 HTTP 交换期间的任何时间发生。对于此特定功能,服务器在收到请求后立即发送它(因此知道请求了哪个资源),但在发送响应之前。
关于apache - 客户端证书身份验证如何在每个目录的基础上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22332697/