【发布时间】:2015-08-01 10:02:42
【问题描述】:
我们使用带有 mod_ssl 的 Apache 2.2.25 在反向代理模式下使用 mod_proxy。它有一个我们用于测试目的的服务器证书,由 GoDaddy 颁发。链中有 3 个证书,server cert -> GoDaddy intermediate CA -> GoDaddy Root CA。中间 CA(Go Daddy Secure Certificate Authority - G2)并不总是在客户的受信任 CA 列表中。
到服务器的 SSL 连接适用于浏览器(至少对于某些浏览器),但不适用于其他一些客户端。我们注意到我们的服务器没有发送完整的证书链,通过使用以下命令:openssl s_client -showcerts -connect SERVER_URL:443,并且该命令确实报告了错误Verify return code: 21 (unable to verify the first certificate)
我们在每个 VirtualHost 中使用 SSLCertificateFile 指令:
SSLCertificateFile certificate.crt
certificate.crt 文件包含私钥和链中的所有证书。 我们尝试将其拆分为以下内容:
SSLCertificateFile server.crt
SSLCertificateKeyFile server.key
SSLCertificateChainFile chain.crt
但这并没有改变任何东西。
感谢您的帮助!
编辑
情节变厚了 - 它似乎是证书和服务器的某种组合。
(使用SSL Shopper 工具进行测试)
- Apache 2.2 (RHEL) 上的 Go Daddy 证书(如上) - 不起作用
- 相同的证书,在 IIS7 上 - 有效
- Apache 2.2 RHEL 上的客户证书(来自 Comodo) - 有效
【问题讨论】:
标签: apache ssl certificate reverse-proxy mod-ssl