当前位置: 首页 > 知识库问答 >
问题:

JDK 8中使用的TLS版本

裴焱
2023-03-14

我们使用以下代码初始化SSL上下文,并在Java8上运行。

SSLContext context = SSLContext.getInstance("SSL");

既然Java 8默认使用TLSv1.2?这是否意味着如果我的服务器支持,上面的代码将开始发送TLSv1.2请求。

想要了解“SSL”协议名称是否只是一个别名,但java runtime开始使用默认TLS版本发送请求。

更新

我对“https://www.google.co.in/”运行代码,在fiddler中发现了这个

A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below.

Version: 3.3 (TLS/1.2

如果我把协议改成只支持1.0的TLSv1,Fiddler会告诉我

A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below.

Version: 3.1 (TLS/1.0)

因此,我想上面带有“SSL”协议名称的代码应该可以很好地用于TLS 1.2服务器。

共有1个答案

年光明
2023-03-14

对在Java 7中,服务器端默认TLS版本为1.2。在Java 8中,服务器和客户端都有默认TLS版本1.2。

由于TLS版本在两侧都是向后兼容的,除非服务器严格配置为特定版本,否则不应成为问题。

 类似资料:
  • 本规范任何时候使用传输层安全性(TLS),基于广泛的部署和已知的安全漏洞TLS的相应版本(或多个版本)将会随时间而变化。在本规范撰写时,TLS 1.2版RFC5246是最新的版本,但它具有非常局限的部署基础,可能还未准备好可以实现。TLS 1.0版RFC2246是部署最广泛的版本并将提供最宽泛的互操作性。 实现也可以支持满足其安全需求的其他传输层安全机制。

  • 我们被要求通过HTTPS(TLS 1.2)调用具有BASIC AUTHENTICATION的特定Rest服务。我使用Spring restTemboard调用此服务。 如果它小于TLSv1.2,我可以使用HTTP客户端强制执行1.2。但我如何检查什么TLS版本正在使用restTemboard?

  • 我有一个客户端,它通过指定TLS 1.2发送握手请求到维基,但维基用TLS 1.0版回复。我如何让维基使用1.2版

  • 我有一个android应用程序,其中有一个模块,它有一个build.gradle文件如下 使用JDK7可以很好地构建完整的应用程序。然而,当我根据JDK8构建这个应用程序时,在构建过程中Java模块中出现以下异常。 Dex:错误转换字节码dex:原因:com.android.dx.command.dexer.ParseException:坏类文件魔术(cafebabe)或版本(0034.0000)

  • 我们有一个在java 6下的tomcat中运行的遗留web应用程序,升级到7或8是不可行的,因为应用程序需要大量的工作才能实现这一点,并且所需的修复太大,无法在遗留应用程序中实现。我们现在需要通过TLS 1.2连接出站(即作为客户端),但java 6仅支持1.0。我们使用Apache作为我们的web服务器,使用OpenSSL进行传入连接,这很好地支持TLS 1.2等。 是否有人必须解决类似的问题,

  • 假设我的客户支持TLS V1。0,1.1和1.2。远程站点支持TLS V1。0和1.1。双方都支持相同的密码。 我的问题是: 1-据我所知,我将始终使用我现有的最高TLS版本启动通信。在这种情况下,我将如何与另一边联系? 2-以下是客户端和服务器之间的Wireshark客户端HELLO捕获,如上所述。 这种连接尝试最终导致“无法创建SSL/TLS安全通道”。我怀疑这与“TLSV1.1记录层”和“版