尽管安装了所有证书,但带有 HTTPS 的 Coldfusion cfhttp 无法正常工作
Coldfusion cfhttp with HTTPS not working although all certificates installed
我知道这个问题已经被问了很多次了,但是虽然我已经搜索了好几天了,但我没有找到合适的答案。
我们是 运行 Coldfusion 9 标准 JDK 1.7。我正在尝试使用 cfhttp 执行请求,代码如下:
<cfhttp url="Https://subdomain.example.com" method="get" result="result" username="#myUsername#" password="#myPassword#" />
转储结果时得到以下信息:
[
我已经将证书链中的所有证书导入到正确的密钥库中。 CA 是让我们加密。有趣的是,我们有另一个网站,我们从中请求一个网络服务,也有来自 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>
我只需要将 port="443"
添加到 cfhttp
标签,这使得下面的代码工作得很好:
<cfhttp port="443" url="Https://subdomain.example.com"
method="get"
result="result"
username="#myUsername#"
password="#myPassword#" />
我哭了,因为我没有早点尝试。奇怪的是,对于另一个请求,我不必指定端口并且它工作正常。
我还从 JVM 设置中删除了以下设置。它对我的问题没有任何影响。
-Dhttps.protocols=TLSv1.1,TLSv1.2
希望,这与JRE有关。我认为您的 coldfusion 服务器使用 TLS 1.0。所以,你需要更新coldfusion服务器JRE。
要添加这个,请按照以下步骤操作,
- 升级到Java 8.
- 登录到 ColdFusion 管理员 > Java JVM
- 将JVM的路径更改为新安装的路径(默认为:C:\Program Files\Java\jre1.8.0_102 in windows.)
- 重新启动 ColdFusion 服务器 - 服务。
- 重新测试..现在应该可以工作了..
我知道这个问题已经被问了很多次了,但是虽然我已经搜索了好几天了,但我没有找到合适的答案。
我们是 运行 Coldfusion 9 标准 JDK 1.7。我正在尝试使用 cfhttp 执行请求,代码如下:
<cfhttp url="Https://subdomain.example.com" method="get" result="result" username="#myUsername#" password="#myPassword#" />
转储结果时得到以下信息:
[
我已经将证书链中的所有证书导入到正确的密钥库中。 CA 是让我们加密。有趣的是,我们有另一个网站,我们从中请求一个网络服务,也有来自 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>
我只需要将 port="443"
添加到 cfhttp
标签,这使得下面的代码工作得很好:
<cfhttp port="443" url="Https://subdomain.example.com"
method="get"
result="result"
username="#myUsername#"
password="#myPassword#" />
我哭了,因为我没有早点尝试。奇怪的是,对于另一个请求,我不必指定端口并且它工作正常。
我还从 JVM 设置中删除了以下设置。它对我的问题没有任何影响。
-Dhttps.protocols=TLSv1.1,TLSv1.2
希望,这与JRE有关。我认为您的 coldfusion 服务器使用 TLS 1.0。所以,你需要更新coldfusion服务器JRE。
要添加这个,请按照以下步骤操作,
- 升级到Java 8.
- 登录到 ColdFusion 管理员 > Java JVM
- 将JVM的路径更改为新安装的路径(默认为:C:\Program Files\Java\jre1.8.0_102 in windows.)
- 重新启动 ColdFusion 服务器 - 服务。
- 重新测试..现在应该可以工作了..