ColdFusion SSL身份验证失败

Ohk*_*aka 3 coldfusion ssl ssl-certificate cfhttp

我有一个简单的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>
Run Code Online (Sandbox Code Playgroud)

请求在开始之前失败,ColdFusion服务器说:

I/O异常:peer未经过身份验证

两个开发环境都非常有效.他们接收登录会话,然后将其交给收集器进程,该进程成功地点击远程Web服务以获取数据.

在我花了一天时间尝试将正确的证书放入ColdFusion商店后,我有一个明智的想法,即将它们与工作开发环境进行比较.我看着他们(keytool -list),他们是完全相同的.

既然明显是免除了我留下的问题是双重的:

  1. 是否有一些我需要检查的其他证书存储库,或者有一个地方,我可以让ColdFusion告诉我需要什么证书存储库来找到证书IN(关于它可以和已被更改的概率)或者如果这甚至是可能的.
  2. 识别并纠正其他可能导致此问题.

Jas*_*ean 7

开发和生产环境是否相同?它们都是,例如,ColdFusion 9 Standard或ColdFusion 8 Enterprise?

根据我的经验,这个错误通常是由两件事之一引起的:

  1. 管理员无法将证书安装到cacarts存储库中,或者将其安装到错误的存储库中.

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

首先,我将探讨您导入错误的证书库的可能性.很难分辨出正在使用哪个存储库.在"设置摘要"下的CF管理员中,您应该能够找到正在使用的JRE的位置.它列在"Java Home"下.获取该目录并添加lib/security到它的末尾,这应该是正在使用的cacaerts文件的位置.我说应该因为我至少看到过一个奇怪的情况.