ColdFusion - CFHTTP 无法使用来自 Cloudflare 的 SSL 证书连接到安全网站

ColdFusion - CFHTTP cannot connect to secure website with SSL certificate from Cloudflare

我有这个代码:

<cfhttp url="#qCheckSiteID.url#">
<cfdump var="#cfhttp#" />

它适用于任何 HTTP 网址,但不适用于 HTTPS。 例如,它与 https://www.google.com 一起工作正常,但与 https://mywebsite.com 一起工作,后者在 CloudFlare 下有一个 SSL 证书,它失败并显示错误:

I/O Exception: Name in certificate "ssl2000.cloudflare.com" does not match host name "www.mywebsite.com".

知道如何解决这个错误吗?

Cloudflare 使用 SNI(服务器名称指示)在其免费套餐中提供 SSL 证书。这意味着这些站点没有唯一的 IP 地址,但它们依赖于 HTTP 客户端使用 TLS 扩展 SNI 发送主机名以使 SSL 正常工作。这在当今使用的大多数浏览器上都可以正常工作,但在某些浏览器上确实会失败:https://support.cloudflare.com/hc/en-us/articles/203041594-What-browsers-work-with-Universal-SSL-

要使 CFHTTP 与 SNI 一起工作,还需要您 运行ning Java 1.7 或更高版本。 Java 1.7 在完全修补的 CF9,10,11 服务器上受支持。 Java 8 目前在完全修补的 CF10,11 服务器上受支持。

如果您从未在 ColdFusion 服务器上更新 Java,那么您可能 运行ning Java 1.6 或更低版本(除非您 运行ning CF11)。

这是一个视频,展示了如何在 ColdFusion 10 服务器上更新 Java:https://www.youtube.com/watch?v=zzC31EAlZ8Y

您可能仍然可以在 Java 1.7+ 上使用 CF8 和更低版本,但您可能 运行 遇到问题,但是如果您 运行 正在使用 CF8 和更低版本,您应该考虑升级,因为 Adob​​e 不再支持 CF9 及以下版本。