我在使用SSLEngine的端口443上监听了apache2 httpd版本2.2.9。所有URL均具有SSLVerifyClient require,并且可以正常工作。

我想对特定的URL(/ca.crt)设置例外,以便我的客户可以下载与我们签发它们的证书签名的CA证书。我尝试以下方法:

SSLVerifyClient require

Alias /ca.crt /my/ssl/certs/ca.crt
<Location /ca.crt>
  SSLVerifyClient none
</Location>


我的问题是,Apache似乎只想提高SSL客户端证书要求的强度。如果我同时满足这两个要求,它将按指定方式工作。按照上面的配置,Apache有效地忽略了SSLVerifyClient none指令。

这是怎么回事?这是错误吗?

最佳答案

好的,事实证明,此问题的答案在文档中(通常如此!)


  在每个服务器的上下文中,[SSLVerifyClient指令]适用于
  使用的客户端身份验证过程
  在标准SSL握手中
  建立连接。


基本上,第一个SSLVerifyClient指令位于每个服务器的上下文中。我为根目录做了一个明确的<Directory>声明,并在其中放置了SSLClientVerify require指令。这成功了。

09-20 03:13