我们使用类似以下的证书链安装了Apache Debain Wheezy HTTPS服务器:
AddTrust External CA Root -> PositiveSSL CA 2 -> ourdomain.com
Apache配置文件的SSL部分如下所示:
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/ourdomain.crt
SSLCertificateKeyFile /etc/apache2/ssl/ourdomain.key
SSLCertificateChainFile /etc/apache2/ssl/AddTrustExternalCARoot.crt
SSLCertificateChainFile /etc/apache2/ssl/PositiveSSLCA2.crt
SSLVerifyClient optional
SSLVerifyDepth 2
SSLOptions +StdEnvVars +StrictRequire
<Location />
SSLRequireSSL ON
SSLRenegBufferSize 100000000
</Location>
我们已在本地使用openssl verify
并使用外部验证网站验证了链。没有错误。除此之外,我们的大多数用户都可以完美登录。但我们的一位用户抱怨他无法登录(证书验证失败)。查看我们的服务器日志文件,我们可以看到与该用户关联的ip-address的以下行:
Certificate Verification: Error (20): unable to get local issuer certificate
用户使用OSX和Chrome。什么可能是错的或我们在哪里可以进一步诊断问题?
答案 0 :(得分:1)
您有sslverifyclient可选,这意味着客户端可以向Web服务器提供客户端证书,以进行身份验证。也许你的用户有这样的证书。 我自己是新手,我认为这两个项目a)服务器的sslcertificate和b)客户端身份验证不相互依赖......
我也不确定你是否可以给apache两个SSLCertificateChainFile指令。
我希望有点帮助。