ColdFusion SSL身份验证失败
我有一个到SSL服务器的简单cfhttp请求(登录):ColdFusion SSL身份验证失败,ssl,coldfusion,ssl-certificate,cfhttp,Ssl,Coldfusion,Ssl Certificate,Cfhttp,我有一个到SSL服务器的简单cfhttp请求(登录): <cfhttp url="https://www2.[domain].com/api/user/login" method="POST" port="443" > <cfhttpparam type="formfield" name="username" value="[username]" > <cfhttpparam type="formfield" name="password" valu
<cfhttp url="https://www2.[domain].com/api/user/login" method="POST" port="443" >
<cfhttpparam type="formfield" name="username" value="[username]" >
<cfhttpparam type="formfield" name="password" value="[password]" >
</cfhttp>
请求在开始前失败,ColdFusion服务器说:
I/O异常:对等方未经过身份验证
这两种开发环境都工作得非常出色。他们接收登录会话,然后将其交给收集器进程,收集器进程成功地点击远程web服务获取数据
在我花了一天时间试图将正确的证书放入ColdFusion商店之后,我有了一个好主意,将它们与工作开发环境进行比较。我查看了它们(keytool-list
),它们是相同的
现在,显而易见的事情已经过去了,剩下的问题有两个:
开发和生产环境是否相同?例如,它们都是ColdFusion9 Standard还是ColdFusion8 Enterprise 根据我的经验,此错误通常由以下两种原因之一引起:
首先,我将探讨您导入错误证书存储库的可能性。很难判断正在使用哪个存储库。在“设置摘要”下的CF管理员中,您应该能够找到正在使用的JRE的位置。它列在“Java主页”下。获取该目录并在其末尾添加
lib/security
,该目录应该是正在使用的cacaerts文件的位置。我说应该,因为我至少看到过一种奇怪的情况,但事实并非如此。我也有同样的问题,我尝试了所有方法,但都无法解决。奇怪的是,一切正常,然后突然停止工作。可能是服务器上的Java更新导致了问题,或者是CFHTTP试图访问的网站的证书发生了更改
无论如何,下面是我为这个问题的“演示”设置的链接:
如您所见,我正在尝试使用CFHTTP标记访问HTTPS服务。而且它不起作用。我从C:\ColdFusion9\runtime\jre\lib\security\cacerts
中删除了证书,从网站URL生成了一个新的证书,重新导入,在CFID/administrator下安装了“certman”,检查了证书,它就在那里。。。它列在我的测试页面上
如果滚动到“我的测试”页面的底部,您将看到一个类似于的CFHTTP,即使服务器上没有安装证书,它也可以正常工作
值得一提的是,这个请求在我的开发机器上运行得非常完美,而在这里我也没有安装任何证书
这就是我如何修复它的方法
1。更新了ColdFusion 9.0.2,其中包括:
2。从此处安装Java JDK 1.7.0_79
3。更改了ColdFusion管理员/服务器设置中的Java主页→ Java和JVM从“C:\ColdFusion9\runtime\lib\jre”到“C:\Program Files\Java\jdk1.7.0\u 79\jre”
就这样。我不知道它是否使用任何证书。它们安装在“C:\ColdFusion9\runtime\lib\jre\lib\security\cacerts”中,没有从那里移动或做任何事情。听起来你做的一切都是对的,但我会检查上的步骤以确定。确保两台服务器上都有完整的证书链。编辑原文以突出显示相关问题。非常有用。该站点的发起人显然将引擎关闭到了另一个版本的Java,因此为标准部署编写的更改不会起作用。找到了正确的Java主页,现在一切正常。Jason您能提供有关BSafe CryptoJ库的更多详细信息吗?目前,我们在导入Twitter的证书时遇到问题。我们试着将它添加到cacerts和trustedSource中,但它仍然不起作用。Lucas在这里解释道:也阅读评论