【问题标题】:ColdFusion SSL authentication failureColdFusion SSL 身份验证失败
【发布时间】:2011-10-24 06:27:39
【问题描述】:

我有一个简单的 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. 找出并纠正其他可能导致此问题的原因。

【问题讨论】:

标签: ssl coldfusion ssl-certificate cfhttp


【解决方案1】:

开发和生产环境是否相同?例如,它们都是 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 文件的位置。我说应该,因为我至少看到过一种奇怪的情况,而事实并非如此。

【讨论】:

  • 非常有帮助。该站点的创建者显然将引擎关闭到了不同版本的 Java,因此为标准部署编写的任何更改都不会起作用。找到了正确的 Java Home,现在一切正常。
  • Jason 您能否提供有关 BSafe CryptoJ 库的更多详细信息?目前我们在导入 Twitter 证书时遇到问题。我们尝试将其添加到 cacerts 和trustedSource,但仍然无法正常工作。
  • 卢卡斯,在这里解释:coldfusionjedi.com/index.cfm/2011/1/12/… 也阅读 cmets
【解决方案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 管理员/服务器设置 → Java 和 JVM 中的 Java Home 从“C:\ColdFusion9\runtime\lib\jre”更改为“C:\Program Files\Java\jdk1.7.0_79\jre” p>

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

【讨论】:

    猜你喜欢
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 2019-07-21
    • 2014-01-24
    • 2017-11-27
    相关资源
    最近更新 更多