通过CentOS 6.5+服务器上的SSLVerifyCilent在Apache网页服务器上设置客户端证书validation

目标:

我的目标是在Centos框中设置Apache Web服务器,SSL和客户端证书validation与以下Apache虚拟主机类似( http://hstuart.dk/2010/04/09/x-509-certificates-and- mercurial / ):

<VirtualHost *:443> SSLEngine on SSLCertificateFile /path/to/myserver.pem SSLCertificateKeyFile /path/to/myserver.key SSLCACertificateFile /path/to/ca.pem SSLCACertificatePath /path/to SSLVerifyClient require <Location /> SSLRequireSSL SSLOptions +FakeBasicAuth AuthName "FakeBasicAuth" AuthType Basic AuthUserFile /path/to/httpd.passwd require valid-user </Location> ScriptAliasMatch ^(.*) /path/to/hgwebdir.cgi$1 </VirtualHost> 

当前解决scheme

截至目前,我有一个工作的Apache解决scheme,它基于一个自签名的CA证书,用于创build一个中间CA,再次用于创build一个Web服务器证书( https://jamielinux.com/articles/2013/ 08 /作为你自己的证书权威/ )。

在CA虚拟主机文件中使用CA,中间CA和Web服务器证书来设置SSL通信。 当我不使用SSLVerifyClient时,解决scheme按预期方式工作,无论是在Web服务器本身还是添加了CA证书的窗口框中。 没有唠叨的屏幕,一切都很好。

问题:

但是一旦我添加了SSLVerifyClient,我就可以在windows上获得Firefox的'sslv3 alert handshake failure' ,在centos服务器上获得'sslv3 alert handshake failure' ,然后使用'openssl s_client -connect [ip]:[port]'命令。

这个失败是肯定的,因为我错过了客户端证书,但是如何创build和使用这个客户端证书呢? 我看不到这个客户端证书适合哪里。

我曾尝试玩腻子选美,但似乎这只是ssh协议而不是安全的http。 我正在寻找一个安全的http解决scheme,其中的客户端证书安装在Windows框允许开发人员访问networking服务器。

您需要将客户端证书作为p12 / pfx(包括私钥)文件导入到您的Firefox中。

客户端证书需要是Web服务器信任的客户端证书。 即客户端证书应由您的CA注册/签名。