虽然安装了所有证书,但使用HTTPS的Coldfusion cfhttp无法正常工作

col*_*azy 7 coldfusion https coldfusion-9

我知道这个问题已经被问了很多,但是虽然我现在一直在寻找几天,但我找不到合适的答案.

我们使用JDK 1.7运行Coldfusion 9 Standard.我正在尝试使用cfhttp执行请求,代码如下:

 <cfhttp url="Https://subdomain.example.com" method="get"  result="result" username="#myUsername#" password="#myPassword#" />
Run Code Online (Sandbox Code Playgroud)

转出结果时我得到以下内容:

[1]

我已经将证书链中的所有证书导入到正确的密钥库中.CA是Let的加密.有趣的是,我们有另一个网站,我们要求网络服务,也有来自Let's Encrypt的证书,它正在运行.从同一Coldfusion服务器访问.

我还尝试在Application.cfc中使用onApplicationStart中的代码,但是没有用:

<cfif NOT isDefined("Application.sslfix")>
    <cfset objSecurity = createObject("java", "java.security.Security") />
    <cfset objSecurity.removeProvider("JsafeJCE") />
    <cfset Application.sslfix = true />
</cfif> 
Run Code Online (Sandbox Code Playgroud)

col*_*azy 4

我只需添加port="443"cfhttp标签中,这使得以下代码可以正常工作:

<cfhttp port="443" url="Https://subdomain.example.com" 
   method="get" 
   result="result" 
   username="#myUsername#" 
   password="#myPassword#" />
Run Code Online (Sandbox Code Playgroud)

我哭了,因为我没有早点尝试。奇怪的是,对于其他请求,我不必指定端口并且工作正常。

我还从 JVM 设置中删除了以下设置。它对我的问题没有任何影响。

-Dhttps.protocols=TLSv1.1,TLSv1.2
Run Code Online (Sandbox Code Playgroud)