我在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源就足够了吗?
答案 0 :(得分:0)
更改JRE Openfire正在使用1.6到1.7。如果您在Windows中运行Openfire,请基于shell脚本openfirectl创建使用Java 7的批处理文件。无需重新编译代码。
答案 1 :(得分: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')
E.g。你最好的选择是使用Java 7或8,如果选择7,请尝试上述设置。