从同一主机,我将为两个子域提供 SSL 服务,但其中一个子域也需要客户端身份验证。
NameVirtulaHost *:443
<VirtualHost *:443>
ServerName mail.example.com
SSLEngine on
SSLCACertificateFile /etc/apache2/ssl/server.crt
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
</VirtualHost>
<VirtualHost *:443>
ServerName erp.example.com
SSLEngine on
SSLVerifyClient require
SSLCACertificateFile /etc/apache2/ssl/server.crt
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
</VirtualHost>
使用上述配置,SSL 已激活,但不需要客户端证书。如果我更改顺序(第一个是 erp.example.com),则两个域都需要客户端证书。
(Apache/2.2.9)
答案1
首先简单读一下这个..
http://httpd.apache.org/docs/2.0/mod/mod_ssl.html#sslverifyclient
它解释了如何使用 SSLVerifyRequire
在每个目录上下文中,它会在读取 HTTP 请求之后但在发送 HTTP 响应之前强制使用重新配置的客户端验证级别进行 SSL 重新协商。
如有任何其他问题,请询问..
希望这能有所帮助:D