我有这段代码:
<cfhttp url="#qCheckSiteID.url#">
<cfdump var="#cfhttp#" />
适用于任何HTTP网址,但不适用于HTTPS。
例如,它适用于https://www.google.com
,但https://mywebsite.com
在CloudFlare下具有SSL证书,但失败并显示错误:
I / O异常:证书中的名称&#34; ssl2000.cloudflare.com&#34;与主机名称不匹配&#34; www.mywebsite.com&#34;。
任何想法如何传递此错误?
答案 0 :(得分:5)
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或更高版本。完全修补的CF9,10,11服务器支持Java 1.7。目前完全修补的CF10,11服务器支持Java 8。
如果您从未在ColdFusion服务器上更新过Java,那么您可能正在运行Java 1.6或更低版本(除非您运行的是CF11)。
以下视频展示了如何在ColdFusion 10服务器上更新Java:https://www.youtube.com/watch?v=zzC31EAlZ8Y
你可能仍然能够获得CF8并降低Java 1.7+的工作量,但是你可能遇到问题,但是如果你运行CF8以及更低版本,你应该考虑升级,因为Adobe不再支持CF9及以下版本。