【问题标题】:What is the TLS version in this code snippet of Java 1.7?Java 1.7 的这段代码中的 TLS 版本是什么?
【发布时间】:2015-10-26 06:12:14
【问题描述】:

我将 JVM 参数作为 -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2 传递。但是在代码中,我明确地将 SSL 上下文对象作为 SSLContext sc = null; sc = SSLContext.getInstance("TLS");.

在这种情况下,TLS 版本是否是最高版本(1.2),或者我需要明确获取 TLS 版本

sc = SSLContext.getInstance("TLSv1.2");

支持 TLS 1.2 版

【问题讨论】:

    标签: java ssl java-security


    【解决方案1】:

    可能不会。

    According to the documentation,此设置仅被 HttpsURLConnection 和 URl#openStream 使用。

    https.protocols

    控制通过使用 HttpsURLConnection 类或通过 URL.openStream() 操作获得 https 连接的 Java 客户端使用的协议版本。

    如果直接获取自己的SSLContext,很可能不会参考设置。

    【讨论】:

    • 对于Java8,有一个新的设置似乎更全面:stackoverflow.com/questions/11504173/sslcontext-initializationjdk.tls.client.protocols
    • 有没有办法像使用wireshark等捕获出站流量并在运行时确定TLS版本?
    • ... 或接受和转储 HTTPS 请求的公共 Web 服务。
    • 在Wireshark TLS版本上可以看成TLSv1或者TLSv1.1...视情况而定。您需要在wireshark菜单中配置协议并输入必须捕获TLS通信的端口。
    猜你喜欢
    • 2010-11-01
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多