根据有关 SSLVerifyClient 的 Apache 文档,可以在 Directory 上下文中定义其值。但是,以下配置不起作用:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
...
DocumentRoot /var/www/projects
SSLEngine on
SSLCipherSuite HIGH:MEDIUM:-SSLv2
SSLCertificateFile /etc/ssl/certs/dev.example.com_self.crt
SSLCertificateKeyFile /etc/ssl/private/dev.example.com_self.key
SSLVerifyClient none
SSLVerifyDepth 2
<Directory "/var/www/projects/projectA/">
SSLCACertificateFile "/etc/ssl/certs/ACRAIZ-SHA2.crt"
SSLVerifyClient require
</Directory>
...
</VirtualHost>
</IfModule>
如果我要求https://example.com/projectX值none
已设置。但如果我尝试https://example.com/projectAApache 不考虑该require
值但保留none
。
我的配置有问题吗?或者与 Apache 解析规则有关?
谢谢
答案1
尝试将您的目录SSLCACertificateFile
移出该<Directory>
块 - 目录对于该配置来说不是有效的上下文。
您的虚拟主机中是否有任何其他配置(例如<Location>
)或可能.htaccess
设置自己的文件SSLVerifyClient none
?这些设置可能优先于目录块。
哦,我不确定这是否是的要求SSLCACertificateFile
,但是在您将该配置放到正确的位置后,请完全重启(而不仅仅是重新加载)。mod_ssl 在重新加载时对于选择新的证书文件很挑剔。