弹出以随机选择显示客户端证书,并让我访问没有证书的受保护目录

时间:2018-10-09 01:13:55

标签: apache ssl certificate ssl-certificate virtualhost

我制作了2个CSR(一个用于服务器,一个用于客户端,如下图所示: ssatClient ssatServer )。用有效的CA证书签名后,我对其进行了验证。他们两个都显示验证可以。

我正在使用xampp通过SSL连接运行APACHE服务器。

配置

这是 httpd-ssl.conf

的内容
Listen 443
SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLHonorCipherOrder on 

SSLProtocol all -SSLv3
SSLProxyProtocol all -SSLv3
SSLPassPhraseDialog  builtin
SSLSessionCache "shmcb:D:/xamppNew/apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

<VirtualHost _default_:443>

DocumentRoot "D:/xamppNew/htdocs"
ServerName SSAT:443
ServerAdmin admin@example.com
ErrorLog "D:/xamppNew/apache/logs/error.log"
TransferLog "D:/xamppNew/apache/logs/access.log"

SSLEngine on

SSLCertificateFile "conf/ssl.crt/ssatServer.crt"
SSLCertificateKeyFile "conf/ssl.key/ssatServer.key"
SSLCertificateChainFile "conf/SSAT_ca-chain.crt"
#SSLCACertificatePath conf/ssl.key/SSAT.crt"
#SLCACertificateFile "conf/ssl.crt/SSAT.crt"
#SSLVerifyClient require 
#SSLCACertificateFile conf/ssl.crt/SSAT.crt 
#SSLVerifyDepth 1
SSLVerifyClient require
SSLCACertificateFile "conf/SSAT_ca-chain.crt"

<Location /protected> 
     SSLVerifyClient require 
     SSLVerifyDepth 3
</Location>
<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "D:/xamppNew/apache/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
</VirtualHost>                 

下面显示在文件 httpd-vhosts.conf

中的虚拟主机设置
<VirtualHost *:443>
    ServerName SSAT
    SSLEngine on
    SSLCertificateFile "conf\ssl.crt\ssatServer.crt"
    SSLCertificateKeyFile "conf\ssl.key\ssatServer.key"
    SSLCACertificateFile "conf\SSAT_ca-chain.crt"
   <Location /protected> 
        SSLVerifyClient require 
        SSLVerifyDepth 3
    </Location>

</VirtualHost>

问题

我正在尝试通过ssat:443站点对客户端进行身份验证。在虚拟主机中使用 SSLVerifyClient require 选项设置标签后,用户才能访问此目录,前提是用户拥有由我的CA。无论我在Google Chrome浏览器中删除受信任的证书还是个人证书,即使没有有效的客户端证书,我仍然可以访问/ protected目录。有时,如果我尝试在30或40分钟后重新连接,则会弹出窗口,让我选择客户端证书。选择它之后,服务器使我进入/ protected选项卡,从此直到下一次弹出窗口,无论我重启服务器多少次或删除/重新添加有效和无效的证书,它都使我可以访问它。 / p>

问题

我在配置中做错了吗? “连接是安全的”始终适用于服务器证书。 有什么方法可以删除“缓存的”证书,因此每次我要访问/ protected选项卡时,都会通过弹出窗口要求我提供证书吗?

对不起,很长的帖子

0 个答案:

没有答案