3

我有一个简单的 cfhttp 请求(登录)发送到 SSL 服务器:

<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),它们是相同的。

现在显而易见的是,我留下的问题是双重的:

  1. 是否有其他证书存储库我需要检查,或者,是否有一个地方可以让 ColdFusion 告诉我它需要哪个证书存储库才能找到证书 IN(如果它可以并且已经被更改)或者如果这甚至是可能的。
  2. 识别并纠正其他可能导致此问题的原因。
4

2 回答 2

7

开发环境和生产环境一样吗?例如,它们都是 ColdFusion 9 Standard 还是 ColdFusion 8 Enterprise?

根据我的经验,此错误通常是由以下两种情况之一引起的:

  1. 管理员未能将证书安装到 cacarts 存储库中,或者他们将其安装到了错误的存储库中。

  2. ColdFusion Enterprise 和 ColdFusion Developer 版本(我相信适用于 ColdFusion 8 和 ColdFusion 9)在安装的内置 BSafe CryptoJ 库和某些类型的证书(我还不能确定模式)方面存在问题导致此错误。如果是这种情况,有一些解决方法。

首先,我将探讨您导入错误证书存储库的可能性。很难判断正在使用哪个存储库。在“设置摘要”下的 CF Admin 中,您应该能够找到正在使用的 JRE 的位置。它列在“Java 主页”下。获取该目录并添加lib/security到它的末尾,这应该是正在使用的 cacaerts 文件的位置。我说应该是因为我至少看到过一种奇怪的情况,但事实并非如此。

于 2011-08-10T16:49:20.457 回答
2

我遇到了同样的问题,我尝试了所有方法,但无法解决。奇怪的是一切正常,然后突然停止工作。可能是服务器上的 Java 更新导致问题或 CFHTTP 尝试访问的网站的证书更改。

无论如何,这是我为这个问题的“演示”设置的链接:

http://www.viaromania.eu/https.cfm

如您所见,我正在尝试使用 CFHTTP 标记访问 HTTPS 服务。它不工作。我从 中删除了证书C:\ColdFusion9\runtime\jre\lib\security\cacerts,从网站 URL 生成了一个新证书,导入回来,在 CFID/administrator 下安装了“certman”,检查了证书,它就在那里……它列在我的测试页面中。

如果您滚动到我的测试页面的底部,您会看到与https://www.google.com类似的 CFHTTP ,即使服务器上没有安装证书,它也可以正常工作。

值得一提的是,该请求在我的开发机器上运行得非常完美,而且在这里我也没有安装任何证书......

这就是我修复它的方法

1. 使用此更新 ColdFusion 9.0.2 - https://helpx.adobe.com/coldfusion/kb/cumulative-hotfix-1-coldfusion-902.html

2.从这里安装Java JDK 1.7.0_79 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

3. 将 ColdFusion Administrator / Server Settings → Java and JVM 中的 Java Home从“C:\ColdFusion9\runtime\lib\jre”更改为“C:\Program Files\Java\jdk1.7.0_79\jre”

就是这样。我不知道它是否使用任何证书。它们安装在“C:\ColdFusion9\runtime\lib\jre\lib\security\cacerts”中,并且没有从那里移动或其他任何东西。

于 2016-02-17T19:36:15.990 回答