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
),他们是完全相同的.
既然明显是免除了我留下的问题是双重的:
开发和生产环境是否相同?它们都是,例如,ColdFusion 9 Standard或ColdFusion 8 Enterprise?
根据我的经验,这个错误通常是由两件事之一引起的:
管理员无法将证书安装到cacarts存储库中,或者将其安装到错误的存储库中.
ColdFusion Enterprise和ColdFusion Developer版本(我认为对于ColdFusion 8和ColdFusion 9)都存在安装的内置BSafe CryptoJ库和某些类型的证书(我还未能确定模式)的问题导致此错误.如果是这种情况,有一些解决方法.
首先,我将探讨您导入错误的证书库的可能性.很难分辨出正在使用哪个存储库.在"设置摘要"下的CF管理员中,您应该能够找到正在使用的JRE的位置.它列在"Java Home"下.获取该目录并添加lib/security
到它的末尾,这应该是正在使用的cacaerts文件的位置.我说应该因为我至少看到过一个奇怪的情况.