gpt4 book ai didi

apache - 如何强制 Apache 2.2 发送完整的证书链?

转载 作者:太空宇宙 更新时间:2023-11-03 12:42:07 27 4
gpt4 key购买 nike

我们在使用 mod_proxy 的反向代理模式下使用 Apache 2.2.25 和 mod_ssl。它有一个我们用于测试目的的服务器证书,由 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 返回码: 21(无法验证第一个证书)

我们在每个 VirtualHost 中使用 SSLCertificateFile 指令:

SSLCertificateFile certificate.crt

其中 certificate.crt 文件包含私钥和链中的所有证书。我们尝试将其拆分为以下内容:

SSLCertificateFile server.crt
SSLCertificateKeyFile server.key
SSLCertificateChainFile chain.crt

但这并没有改变任何东西。

感谢您的帮助!

编辑
情节变浓了 - 它似乎是证书和服务器的某种组合。
(使用 SSL Shopper 工具进行测试)

  1. Apache 2.2 (RHEL) 上的 Go Daddy 证书(如上所述)- 不起作用
  2. 相同的证书,在 IIS7 上 - 有效
  3. Apache 2.2 RHEL 上的客户证书(来自 Comodo)- 有效

最佳答案

你走在正确的轨道上。

SSLCertificateFile server.crt      >> Your public certificate
SSLCertificateKeyFile server.key >> Your private key
SSLCertificateChainFile chain.crt >> List of intermediate certificates;
in your case, only one - GoDaddy intermediate CA

使用类似 SSL Labs 的工具检查您的服务器配置以确定您发送的中间证书是否正确。

关于apache - 如何强制 Apache 2.2 发送完整的证书链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30344893/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com