Apache 配置虚拟主机与客户端认证

Apache 配置虚拟主机与客户端认证

从同一主机,我将为两个子域提供 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

相关内容