JDK 13 Early Access Build 16现在可用,它带来的有趣的功能之一是能够使keytool命令行工具显示当前系统的TLS配置信息 这比尝试在单独的文档中查找受支持的TLS信息并使该信息与自己的JDK供应商和版本更容易。

要查看JDK 13 Early Access Build 16的TLS配置详细信息,只需在命令行中输入keytool -showinfo -tls ,但在本文中我将介绍有关此命令的更多信息。

下一个屏幕快照显示了我用于示例的JDK是JDK 13 Early Access Build 16,并演示了keytool用法现在显示了包含-showinfo命令的工具。

使用JDK 13查看TLS配置

只需输入没有任何命令或选项的keytool ,就会在屏幕快照中显示用法说明。 -showinfo命令的描述为“显示安全相关信息”。

下一个屏幕快照演示了在不使用选项的情况下尝试使用keytool -showinfo时提供的提示(“尝试“ keytool -showinfo -tls”。”)。 该图像还显示了与keytool命令-showinfo相关的选项,这些选项在输入keytool -showinfo --help时显示。

使用JDK 13查看TLS配置

-showinfo命令一起使用的--help选项显示了-v选项,但是我在Windows安装中发现,与仅使用-tls选项相比,该-v选项没有提供任何其他值。 下一个屏幕快照显示了尝试单独使用-v选项(不带-tls选项)的结果:

使用JDK 13查看TLS配置

当尝试将-vkeytool命令-showinfo一起使用时,我们会收到一条错误消息,并建议您尝试使用keytool -showinfo -tls 确实确实更好,如下一个屏幕快照所示,该快照仅显示返回结果的部分结果。

使用JDK 13查看TLS配置

运行keytool -showinfo -tls的输出列出了“已启用协议”和“已启用密码套件”。 在这种情况下,我们看到“启用的协议”是TLSv1.3TLSv1.2TLSv1.1TLSv1

我发现查看实现此新命令和keytool选项所需的代码更改很有趣。 该实现使用JDK的javax.net.ssl.SSLContext类的getDefault()方法来获取“默认SSL上下文”。 调用返回的SSLContext实例的getSocketFactory()方法,并在返回的javax.net.ssl.SSLSocketFactory实例上调用createSocket()方法。 返回的javax.net.ssl.SSLSocket实例具有两个方法getEnabledProtocols()getEnabledCipherSuites() ,它们从运行keytool -showinfo -tls的输出中返回上面显示的值。

JDK 13-showinfo命令的带有-tls选项的keytool命令行工具的-showinfoEarly Access Build 16起可用,并通过JDK-8219861提供 还值得注意的是, JDK-8204636最终可能会导致对JDK的TLS 1.3支持的改进。

翻译自: https://www.javacodegeeks.com/2019/04/viewing-tls-configuration-jdk-13.html

相关文章:

  • 2021-11-19
  • 2022-12-23
  • 2021-09-04
  • 2022-12-23
  • 2021-07-03
  • 2021-09-25
  • 2021-11-01
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-22
  • 2022-12-23
  • 2021-06-29
  • 2021-09-07
相关资源
相似解决方案