SSL 的 CFHTTP 问题 - 关闭 cfhttp 的安全性?
Posted
技术标签:
【中文标题】SSL 的 CFHTTP 问题 - 关闭 cfhttp 的安全性?【英文标题】:CFHTTP issue with SSL - turn off security on cfhttp? 【发布时间】:2014-10-29 08:05:23 【问题描述】:尝试让这个请求生效,我一直在玩得很开心。一段时间以来,我一直在向 Facebook 发出<cfhttp method="get"...>
请求,没有出现任何问题。该请求获取一个 RSS 提要,以便我们可以在我们的网站上显示它。不幸的是,最近有人注意到它停止工作了。我能想到的唯一可能导致问题的是我系统中的 URL 是 http://www.facebook.com...
,但被重定向到安全 (https://www.facebook.com...
)。
所以我已经尝试安装证书,因为它张贴在“互联网”上......没有骰子。我已经尝试安装到 ColdFusion、我们的网络服务器和 ColdFusion 所在的 Java 安装中。
有什么方法可以告诉 ColdFusion 我不在乎这是一个安全的请求,并且无论如何都要处理它? Facebook 不在乎,我知道我在做什么,那么 ColdFusion 为什么要阻止我做我想做的事情呢?这不是我唯一一次遇到这种情况,但我通常不需要发出安全请求,而是做其他事情。
---Edit#1:我知道这必须是一个安全的请求。我只是想知道是否有某种方法可以告诉 ColdFusion 或 Java,我不希望它阻止与安全站点的连接。
ColdFusion 8 Enterprise,安装在 Solaris 服务器上,带有 Java JDK 1.6.0_12(仅适用于该环境中的 Verity 的版本)。
---Edit#2:这个问题显然很不清楚。对不起。 是否可以暂时禁用需要安装证书才能向安全 URL 发出请求? 伪代码:
关闭 ColdFusion(或 Java)证书检查 向安全站点发出 CFHTTP 请求(例如<cfhttp url="https://www.facebook.com/feeds/page.php?format=rss20&id=12341234123412" method="get" />
为将来的请求打开 ColdFusion 证书检查
我希望这会有所帮助。很抱歉造成混乱。
【问题讨论】:
不,如果您安全地请求某些东西,那么您也需要安全地接受它。如果 Facebook“不在乎”,他们就不会使用 HTTPS,他们只会使用 HTTP。 +1 亚当所说的。 Facebook 正在将您的 HTTP 请求重定向到 HTTPS。您无法控制它,需要通过 HTTPS 与 SSL 通信。话虽如此,您需要将 Facebook 证书安装到 ColdFusion 已安装且当前正在使用的 正确 JVM 密钥库中。 Instructions posted here @Adam - 我的意思是我不希望 ColdFusion 关心它是否是 HTTPS 请求。如果不存在证书,我想关闭任何逻辑以防止连接。显然,当 Facebook 强制建立安全连接时,我无法连接到 facebook.com。 @Miguel-F - 我按照这些说明(来自 Adobe 的说明)手动安装证书 - 正如我在第二段中所说。我正在安装到 CFIDE 中引用的 JDK 中的 cacerts 受信任密钥库。 我认为 cfhttp 不可能。它在java 技术上是允许的,但需要java 代码。 IIRC,仅使用createObject
是无法完成的。也就是说,它通常被认为是a very bad idea。最好的选择是解决证书问题。您是否 100% 肯定您使用绝对路径将证书导入正确的密钥库?您是否使用 keytool -list
验证并重新启动 cf 服务器?
【参考方案1】:
您需要使用更新的根证书将您的 JVM 更新到较新的版本,因为 Facebook 使用的 SSL 证书很可能基于较新的根证书,而您的系统无法识别它。我建议你试试 JRE 1.6.0_45:
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jre-6u45-oth-JPR
另外,不建议在生产环境中使用JDK,您应该使用服务器JRE。
【讨论】:
感谢您提供的信息。我将研究使用服务器 JRE 而不是我们一直使用的 JDK。我没有参与这个服务器的设置,所以我不知道他们为什么用 JDK 而不是 JRE 来设置它。但是,我们的环境不适用于更高版本的 JRE。 Solaris 上的 CF8 Enterprise(带有 Verity)存在此 Java 版本之外的问题。我们测试了一堆 Java 版本,发现 Verity 不适用于这些版本。以上是关于SSL 的 CFHTTP 问题 - 关闭 cfhttp 的安全性?的主要内容,如果未能解决你的问题,请参考以下文章
ColdFusion CFHTTP I/O 异常:peer not authenticated - 即使在将证书添加到 Keystore 之后
WARN 发送 SSL 关闭消息失败(Kafka SSL 配置问题)
SSL 代理/Charles 和 Android 问题 [关闭]
SSL 代理/Charles 和 Android 问题 [关闭]