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



我有这个代码:

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

这适用于任何HTTP网址,但不适用于HTTPS。例如,它可以在https://www.google.com上运行正常,但对于在CloudFlare下具有SSL证书https://mywebsite.com,它失败并显示错误:

I/O 异常:证书"ssl2000.cloudflare.com"中的名称与主机名"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 配合使用,它要求您运行的是 Java 1.7 或更高版本。Java 1.7 在完全修补的 CF9、10、11 服务器上受支持。Java 8目前在完全修补的CF10,11服务器上受支持。

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

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

您可能仍然可以在Java 1.7+上获得CF8及更低版本,但您可能会遇到问题,但是如果您运行的是CF8及更低版本,则应考虑升级,因为Adobe不再支持CF9及更低版本。

最新更新