【问题标题】:HTTPS call not referring the correct SSL certificate for the corresponding siteHTTPS 调用未引用相应站点的正确 SSL 证书
【发布时间】:2023-04-09 20:07:01
【问题描述】:

我有两个在 Apache Web 服务器上运行的 Coldfusion 应用程序

https://site1.com

https://site2.com

两者都有自己的 SSL 证书,并在 httpd-ssl.conf 文件中配置,每个站点都有基于名称的虚拟主机。

当我从 Site1.com 到 Site2.com 进行 HTTPS 调用时,

    httpService = new http(); 
    httpService.setMethod("get");
    httpService.setUrl("https://site2.com/comp.cfc?method=amethod&ID=12");
    result = httpService.send().getPrefix();

它给出了以下错误

I/O Exception: hostname in certificate didn't match: <site2.com> != <site1.com>

其实应该使用site2的SSL证书。但不确定为什么它使用 Site1 的 SSL 证书并给出错误。

【问题讨论】:

    标签: apache ssl https coldfusion


    【解决方案1】:

    这看起来像是服务器名称指示 (SNI) 问题。 SNI 是一个 TLS 扩展,允许在同一服务器上托管多个 HTTPS 服务器。

    您可以使用以下方式确认此问题:

    echo "" | openssl s_client -connect site2.com:443 | openssl x509 -noout -subject
    

    如果您看到类似CN=site1.com 的内容,请尝试以下操作:

    echo "" | openssl s_client -connect site2.com:443 -servername site2.com | openssl x509 -noout -subject
    

    如果您收到CN=site2.com,这是一个 SNI 问题。

    你可以看看这个bug,更具体地说是这个评论:

    ColdFusion 11 中添加了 SN​​I 支持。支持此功能所需的更改非常大,因此无法向后移植到 ColdFusion 10。

    其他解决方法可能是将您的 2 个 HTTPS 站点托管在 2 个单独的服务器 上,以设置一个对两个名称都有效的唯一 SSL 证书(使用 X509 SubjectAltName 扩展名)或禁用证书 CN 验证(如果可能)。

    【讨论】:

    • 感谢您的回复,我正在我的机器上检查您的建议,所以当我使用 "echo "" | openssl s_client -connect site2.com:443 | openssl x509 -noout -subject" 这个给出 CN=site1.com。但是当我使用 "echo "" | openssl s_client -connect site2.com:443 -servername site2.com | openssl x509 -noout -subject" 我得到了未知选项 -servername
    • 好吧,我认为您的 openssl 不是最新的。您是否尝试使用浏览器访问您的网站?有用吗?
    • 是的!在浏览器中,两个站点都使用正确的 SSL 证书。
    • 您能否尝试更新您的 OpenSSL 并重新运行第二个命令行?然而,由于它在浏览器上运行良好,几乎证明这是一个 SNI 问题。
    • 是的乔!这是一个 SNI 问题。但我通过创建支持多个域的单个 SSL 证书解决了这个问题。 :)
    【解决方案2】:

    您需要将 SSL 证书导入 ColdFusion/Java 密钥库。如果这没有帮助,请在 ColdFusion 的 jvm.config 中添加 -Djavax.net.debug=all。这将需要重新启动 CF 服务。然后尝试 SSL 调用。

    【讨论】:

    • 我已经将两个站点的 SSL 证书都导入了coldfusion
    猜你喜欢
    • 1970-01-01
    • 2020-08-02
    • 2019-08-26
    • 2021-12-24
    • 1970-01-01
    • 2016-06-07
    • 2023-03-05
    • 1970-01-01
    • 2017-07-15
    相关资源
    最近更新 更多