ssl - ColdFusion SSL 身份验证失败

标签 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" value="[password]" >
</cfhttp>

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

I/O Exception: peer not authenticated

两种开发环境都运行良好。他们接收登录 session ,然后将其交给收集器进程,该进程成功地利用远程 Web 服务获取数据。

在我花了一天时间尝试将正确的证书放入 ColdFusion 商店之后,我灵机一动,将它们与工作开发环境进行了实际比较。我查看了它们 (keytool -list),它们是相同的。

现在显而易见的问题已经解决了,我剩下的问题是双重的:

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

最佳答案

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

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

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

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

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

关于ssl - ColdFusion SSL 身份验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7014363/

相关文章:

java - 使用 SpringAMQP 时 RabbitMQ SSL 握手失败

asp.net - DotNetNuke 门户上的 SSL

Coldfusion cfform 隐藏字段验证

date - ColdFusion 创建日期()

coldfusion - 在重定向页面上显示未经授权的页面访问的自定义消息

android - 下载内容时管理网络更改

php - Goutte - TLSv1 协议(protocol)版本错误

ssl - "Certificate required to access this resource is invalid"

PHP curl : detect "unable to get local issuer certificate" error

ssl - 自签名证书和根 CA 证书是否相同?