Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ColdFusion SSL身份验证失败_Ssl_Coldfusion_Ssl Certificate_Cfhttp - Fatal编程技术网

ColdFusion SSL身份验证失败

ColdFusion SSL身份验证失败,ssl,coldfusion,ssl-certificate,cfhttp,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" valu

我有一个到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异常:对等方未经过身份验证

这两种开发环境都工作得非常出色。他们接收登录会话,然后将其交给收集器进程,收集器进程成功地点击远程web服务获取数据

在我花了一天时间试图将正确的证书放入ColdFusion商店之后,我有了一个好主意,将它们与工作开发环境进行比较。我查看了它们(
keytool-list
),它们是相同的

现在,显而易见的事情已经过去了,剩下的问题有两个:

  • 是否有其他证书存储库需要检查,或者,是否有一个地方可以让ColdFusion告诉我需要在哪个证书存储库中查找证书(可能会被更改,也可能已被更改),或者如果可能的话。
  • 识别并纠正可能导致此问题的其他原因

  • 开发和生产环境是否相同?例如,它们都是ColdFusion9 Standard还是ColdFusion8 Enterprise

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

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

  • ColdFusion Enterprise和ColdFusion Developer edition(我相信这两个版本都适用于ColdFusion8和ColdFusion9)在安装的内置BSafe CryptoJ库和导致此错误的某些类型的证书(我还无法确定模式)方面存在问题。如果是这样的话,还有一些变通办法


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

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

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

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

    如果滚动到“我的测试”页面的底部,您将看到一个类似于的CFHTTP,即使服务器上没有安装证书,它也可以正常工作

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

    这就是我如何修复它的方法 1。更新了ColdFusion 9.0.2,其中包括:

    2。从此处安装Java JDK 1.7.0_79

    3。更改了ColdFusion管理员/服务器设置中的Java主页→ Java和JVM从“C:\ColdFusion9\runtime\lib\jre”到“C:\Program Files\Java\jdk1.7.0\u 79\jre”


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

    听起来你做的一切都是对的,但我会检查上的步骤以确定。确保两台服务器上都有完整的证书链。编辑原文以突出显示相关问题。非常有用。该站点的发起人显然将引擎关闭到了另一个版本的Java,因此为标准部署编写的更改不会起作用。找到了正确的Java主页,现在一切正常。Jason您能提供有关BSafe CryptoJ库的更多详细信息吗?目前,我们在导入Twitter的证书时遇到问题。我们试着将它添加到cacerts和trustedSource中,但它仍然不起作用。Lucas在这里解释道:也阅读评论