我们有运行版本10,0,13,287689 9 ColdFusion的10台服务器。 我们已经添加了正确的证书到cacerts文件的使用ColdFusion的Java版本之中。 我们CFHTTP SSL通话将正常工作一段时间,然后突然他们将开始恢复对未通过身份验证。 直到ColdFusion的实例是在他们的工作这点,直到再次失败的循环将无法工作agian。 是在关于失败的ColdFusion的出,ColdFusion的错误,HTTP,或异常的ColdFusion日志的信息。
此外,仅仅因为CFHTTP HTTPS通话开始没有一个ColdFusion的情况下,并不意味着他们将在其他的失败。 我们的ColdFusion服务器绑定到不同的网站的多个ColdFusion的实例。 因此,例如,一个实例可以给同行没有通过认证,并使用相同的Java版本和cacerts文件另一个将正常运行,尽管两者。 此外,回收不工作将解决此问题的ColdFusion的实例和CFHTTP通话将不再失败,对未通过身份验证。
这个问题可能与此有关: ColdFusion的CFHTTP I / O异常:同行未通过身份验证-甚至添加证书到密钥库后
不过,我也尝试过此处的步骤都无济于事,无论是从一个雷蒙德和注释中的一个由彼得: http://www.raymondcamden.com/2011/1/12/Diagnosing-a-CFHTTP-问题-对-不认证
我们已经联系Adobe和他们正在调查这个问题,但认为我会看看别人经历了这些随机CFHTTP SSL失败
Adobe支持已经完全没有帮助。 他们继续坚持,我们的证书是坏的或者说我们不正确的有我们的cacerts文件设置(尽管这个工作对ColdFusion的9罚款并为一段时间工作的ColdFusion实例被回收后的事实)。
我结束了通过与图书馆的java.net.URL直接使用cfobject接口解决此问题的工作。 当ColdFusion的情况下开始与同行失败未通过身份验证,使用的java.net.URL仍然有效。
下面是代码从我cffunction标签片段(这是一个自定义标签),这可以帮助其他人陷在这样的情况:
<cfset var urlConnection = createObject("java", "java.net.URL").init("#arguments.requestURL#").openConnection()>
<cfset var inputReader = "">
<cfset var bufferedReader = "">
<cfset urlConnection.setRequestMethod(UCASE(arguments.requestMethod))/>
<cfset urlConnection.setRequestProperty("User-Agent", CGI.HTTP_USER_AGENT)/>
<cfif arguments.requestMethod EQ "POST">
<cfset urlConnection.setRequestProperty("Content-Type","application/x-www-form-urlencoded")/>
<cfset urlConnection.setDoOutput(true)/>
<cfset outputWriter = createObject("java", "java.io.OutputStreamWriter").init(urlConnection.getOutputStream())>
<cfset outputWriter.write(arguments.requestData)/>
<cfset outputWriter.close()/>
</cfif>
<cfif ISNULL(urlConnection.getErrorStream()) EQ TRUE>
<cfset inputReader = createObject("java", "java.io.InputStreamReader").init(urlConnection.getInputStream())>
<cfelse>
<cfset inputReader = createObject("java", "java.io.InputStreamReader").init(urlConnection.getErrorStream())>
</cfif>
<cfset bufferedReader = createObject("java", "java.io.BufferedReader").init(inputReader)>
使CFHTTP电话时,即使导入证书链我们调用服务器后,我们已经收到了我们的ColdFusion 10服务器上的同样的错误。 然后,我们发现,有一个在ColdFusion的目录树中的cacerts文件的多个副本。 添加证书到其他密钥库后,问题消失。
文章来源: ColdFusion 10 - CFHTTP - Random peer not authenticated on SSL calls (cacerts file updated)