我在 JBOSS 上运行的应用程序 (something.war) 调用了外部 Web 服务。此 Web 服务提供商正在放弃 TLS v1.0,并强迫我使用较新的版本。
所以,我想知道我应该在哪里提及禁用这个旧版本或启用/强制使用新版本。
这是否会对 standalone.xml 或 java 代码(war 文件)产生影响,或者对 jboss 等使用的 jdk/jre 产生影响,或者对其他地方产生影响。
我如何验证/测试正在使用哪个版本,因为即使我在某些配置中提到某个地方,默认/旧版本仍然有效。我不知道,因为无论如何 Web 服务调用都可以正常工作。
答案1
在您的 jboss 配置中,您可以将 TLS 协议作为通用 JRE 参数包含在内。这可以添加到standalone.conf
、host.xml
或JAVA_OPTS
,只要最终的启动命令如下所示(删除您不想启用的命令):
java ‑Djdk.tls.client.protocols="TLSv1,TLSv1.1,TLSv1.2" myApp
HttpsURLConnection
请注意,使用该类或操作的Java 客户端URL.openStream()
可能需要此参数,或者另外需要:-Dhttps.protocols=TLSv1.2
从技术上讲,Java 应用程序本身可以通过修改属性来覆盖这些SSLContext
属性,但这种情况并不常见