即使在导入证书后,cfhttp也无法从https站点读取数据

时间:2013-05-24 10:28:04

标签: coldfusion https coldfusion-9 cfml cfhttp

我的系统上安装了ColdFusion 9。

我需要从SSL加密站点(https)读取数据。我已经按照CF文档中描述的所有步骤进行操作。

那是:

  • 转到相关SSL服务器上的页面。
  • 双击锁定图标。
  • 单击“详细信息”选项卡。
  • 单击“复制到文件”。
  • 选择base64选项并保存文件。
  • 将CER文件复制到C:\ ColdFusion8 \ runtime \ jre \ lib \ security(或者正在使用的JRE ColdFusion)。
  • 在同一目录中运行以下命令(keytool.exe位于C:\ CFusionMX7 \ runtime \ jre \ bin):
    keytool -import -keystore cacerts -alias giveUniqueName -file filename.cer

在CMD中,它显示“证书已成功添加”

但它仍然显示相同的错误 peer not authenticated

还有什么需要吗?

2 个答案:

答案 0 :(得分:2)

如果您尝试在CF 11中调用Web服务(可能是10但是请自行检查),CF希望Web服务或任何CFHTTP调用在标准设置中使用WebSocket服务和端口8577。这是因为WebSocket服务已针对Web服务进行了优化,CFHTTP也使用了WebService套接字。

我在我的IIS服务器上运行CF 11,并且防火墙阻止了端口8577。当我尝试连接时,它会为CFHTTP和Web服务发回此错误:

  

" I / O例外:sun.security.validator.ValidatorException:PKIX路径   建筑失败:   sun.security.provider.certpath.SunCertPathBuilderException:无法   找到所请求目标的有效证书路径"

似乎需要向CACERT for JRE添加自定义证书,但这不是我的解决方案。

如果您不想取消阻止WebSocket服务并且您不需要该本地运行的性能,那么可以使用IIS(至少是IIS)运行这一简单的修复程序。您所要做的就是进入CF Admin仪表板并将WebSocket服务更改为" Use Proxy"。这将通过IIS作为代理将所有调用发送到CF WebSocket服务或CFHTTP。重新启动CF Application Server服务,它应该工作正常。如果这些指示不完美,我会道歉,但它会引导你让它运作起来。另请参阅Using WebSocket with ColdFusion 11

答案 1 :(得分:0)

虽然文档没有特别提及,但是需要重新启动ColdFusion服务。如果你还没有,那应该是你尝试的第一件事。