1

我在 Windows 上使用 Openfire 3.8.1 作为 XMPP 服务器,但 open fire 仅支持 TLS 1.0,我需要支持 TLS 1.2

如何配置 Openfire 以支持 TLS 1.2?

我还读到 openfire 是用 jdk 1.5 或 1.6 编译的,而这些版本的 jdk 不支持 TLS 1.2。如果我用支持 TLS 1.2 的 jdk 1.7 编译 openfire 源代码就足够了吗?

4

2 回答 2

0

将使用的 JRE Openfire 从 1.6 更改为 1.7。如果您在 Windows 中运行 Openfire,请根据 shell 脚本 openfirectl 创建一个使用 Java 7 的批处理文件。无需重新编译代码。

于 2013-04-10T04:03:32.130 回答
0

您必须从 1.6(例如 openjdk-6)升级到 1.7(例如 openjdk-7)才能获得 TLS 1.2。

请注意,即使使用 openjdk-7,TLS 1.2 仍然对客户端连接禁用:

http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html#tlsprotonote

尽管 Java SE 7 版本中的 SunJSSE 支持 TLS 1.1 和 TLS 1.2,但默认情况下,这两个版本均未启用客户端连接。一些服务器没有正确实现前向兼容性并拒绝与 TLS 1.1 或 TLS 1.2 客户端通信。对于互操作性,SunJSSE 默认情况下不为客户端连接启用 TLS 1.1 或 TLS 1.2。

这意味着对于服务器到服务器的连接,openfire 充当客户端,即使使用 openjdk-7,它仍然不会使用 TLS 1.2(只有在 openjdk-8 中才会最终默认启用 TLS 1.2)。

我查看了 openfire 和 Java API 的源代码,并得出结论,您应该能够通过以下方式解决问题(尽管我没有机会确认它具有预期的效果):

INSERT INTO OFPROPERTY VALUES('xmpp.socket.ssl.algorithm','TLSv1.2')

例如,您最好的选择是使用 Java 7 或 8,然后如果使用 7,也请尝试上述设置。

于 2014-06-18T15:50:43.130 回答