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

时间:2018-03-22 10:22:45

标签: https coldfusion coldfusion-9

我知道这个问题已经被问了很多,但是我已经找了好几天了,但我找不到合适的答案。

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

 <cfhttp url="Https://subdomain.example.com" method="get"  result="result" username="#myUsername#" password="#myPassword#" />

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

[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> 

2 个答案:

答案 0 :(得分:3)

我只需将#ifndef BOXCLASS_H #define BOXCLASS_H class BoxClass { //prv variables unsigned short int width; int height, i; float space_Value; float height_Count = 1; bool error = false; //prv functions void Print_Rectangle(int x, int y); public: //function shows area of individual spaces float Rectangle_Area(); //function shows area of individual spaces // constructor BoxClass(int x, int y, int amount); }; #endif 添加到#include "BoxClass.h" #include "stdafx.h" #include <iostream> using namespace std; BoxClass::Print_Rectangle(int x, int y) { //calc space_Value = (3 * x) - 4; //draw top of box for (width = 1; width < x; width += 1) { cout << "..."; } cout << "\n"; //draw sides for (height = 1; height < y; height += 1) { cout << ":"; height_Count++; for (width = 1; width < space_Value; width += 1) { cout << " "; } cout << ":\n"; } //draw bottom cout << ":"; for (width = 1; width < space_Value; width += 1) { cout << "."; } cout << ":\n"; } //function shows area of individual spaces BoxClass::Rectangle_Area() { if (error == false) { return (height_Count - .5)*(space_Value - 1); } else { return 0; } } // constructor BoxClass::BoxClass(int x, int y, int amount) { if (x <= 41) { for (i = 1; i <= amount; i += 1) { Print_Rectangle(x, y); } } else { error = true; cout << "Error - width must be below 42!\n"; } }; 标记,这使得以下代码正常运行:

port="443"
我哭了,因为我之前没有尝试过。奇怪的是,对于其他请求,我不必指定端口,它工作正常。

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

cfhttp

答案 1 :(得分:0)

希望,这与JRE有关。我认为您的Coldfusion服务器使用TLS 1.0。因此,您需要更新Coldfusion服务器JRE。

要添加此内容,请按照以下步骤操作,

  1. 升级到Java 8。
  2. 登录ColdFusion管理员> Java JVM
  3. 将JVM的路径更改为新安装的路径(在Windows中默认为:C:\ Program Files \ Java \ jre1.8.0_102。)
  4. 重新启动ColdFusion服务器-服务。
  5. 重新测试..它现在应该可以工作。.