我尝试使用 ColdFusion CFHTTP
标记通过 SSL 从服务器检索文件,但没有成功。我们的环境是使用服务器配置的 Linux。使用的 keystore 位于 cf_root/runtime/jre/lib/security/cacerts
。我从目标服务器检索了 X.509 证书(DER 格式)并将其导出到文件中。在我们的服务器上,在 cacerts 所在的文件夹中,我将此证书导入到我们的 cacerts keystore 中:
keytool -import -alias certAlias -file pathToX509Cert -keystore cacerts -storepass blahPass
并重新启动 ColdFusion。然而,我们仍然收到“I/O 异常:对等端未经过身份验证”错误。我什至尝试将相同的证书导入 cf_root/runtime/lib/trustStore
的 trustStore 并重新启动 ColdFusion。同样的结果。还有什么我想念的吗?我什至试过 Raymond Camden 的 workaround没有运气。
最佳答案
根据您运行的 CF 版本,Ray 发布的解决方法是唯一的解决方案。导入证书在某些情况下可以工作,但如果您正在访问通配符 SSL 证书,我从未能够让它在 CF8 或更低版本上工作。
作为引用,解决这个问题的代码是:
<cfset objSecurity = createObject("java", "java.security.Security") />
<cfset storeProvider = objSecurity.getProvider("JsafeJCE") />
<cfset objSecurity.removeProvider("JsafeJCE") />
如果这对您不起作用,您可以发布您尝试访问的 URL 以便我们检查证书吗?
FWIW,您通常可以使用类型“COM.Allaire.ColdFusion.HTTPFailure”在 cfcatch 中捕获此失败。
关于ssl - 通过 SSL 的 CFHTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15390369/