对于在 JBOSS 中运行并调用外部 Web 服务的 Web 服务使用者,强制使用 TLS 版本 1.2

对于在 JBOSS 中运行并调用外部 Web 服务的 Web 服务使用者,强制使用 TLS 版本 1.2

我在 JBOSS 上运行的应用程序 (something.war) 调用了外部 Web 服务。此 Web 服务提供商正在放弃 TLS v1.0,并强迫我使用较新的版本。

所以,我想知道我应该在哪里提及禁用这个旧版本或启用/强制使用新版本。

这是否会对 standalone.xml 或 java 代码(war 文件)产生影响,或者对 jboss 等使用的 jdk/jre 产生影响,或者对其他地方产生影响。

我如何验证/测试正在使用哪个版本,因为即使我在某些配置中提到某个地方,默认/旧版本仍然有效。我不知道,因为无论如何 Web 服务调用都可以正常工作。

答案1

在您的 jboss 配置中,您可以将 TLS 协议作为通用 JRE 参数包含在内。这可以添加到standalone.confhost.xmlJAVA_OPTS,只要最终的启动命令如下所示(删除您不想启用的命令):

java ‑Djdk.tls.client.protocols="TLSv1,TLSv1.1,TLSv1.2" myApp

HttpsURLConnection请注意,使用该类或操作的Java 客户端URL.openStream()可能需要此参数,或者另外需要:-Dhttps.protocols=TLSv1.2


从技术上讲,Java 应用程序本身可以通过修改属性来覆盖这些SSLContext属性,但这种情况并不常见

相关内容