关于 TLS 1.2 和 jdk 版本的困惑

Confusion about TLS 1.2 and jdk version

我明白TLS 1.2 isn't supported by JDK 6。但我对这到底意味着什么有点困惑。

在我的项目中,我将我的 apache httpclient 设置为使用 TLSv1.2 。 我的项目是用 mvn 编译的,它使用 jdk 1.6 到 运行。 Maven -source 和 -target 设置为 1.6。

我使用 jdk1.7/bin/java 来调用我的应用程序。我看到我的连接使用的是 TLSv1.2。

那么这是否意味着 "supported" 这个词指的是 运行 应用程序的 JVM 版本,而不是编译项目的 JVM?

Apache httpclient 的 TLS 版本不受 JDK 版本的约束?

您的 link Diagnosing TLS, SSL, and HTTPS 没有提供完美的信息,但也不错。它建议阅读 JSSE 参考指南(我们都会建议),其中解释了 "is supported" 和 "is implemented" 特性。不幸的是,或多或少很清楚。请记住,JSSE 被设计为可插入其他安全实现,这意味着运行时可以决定一些事情,您可以看到不同的行为。

So does this mean that the word "supported" is referring to the JVM version that is running the application and not the JVM that compiled the project?

是的!

在这种情况下,唯一重要的是类路径上运行时库的版本。