为了账号安全,请及时绑定邮箱和手机立即绑定

Ubuntu 下的 OpenJDK 11 是否支持 TLSv1.3?

Ubuntu 下的 OpenJDK 11 是否支持 TLSv1.3?

慕工程0101907 2022-06-08 17:37:04
在 Ubuntu 18.04 上sudo apt install openjdk-11-source导致ProtocolVersion.java不知道 TLSv1.3 。有没有办法纠正这个问题(没有限制性许可)?
查看完整描述

2 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

更新

自2019 年 4 月 23 日起,Ubuntu(18.04 LTS 和更新版本)附带 JRE/JDK 版本11.0.3。出于这个原因,alamar的原始答案已经过时。


出于好奇,我编写了一个小的 TLS v1.3 检查工具,它以编程方式检查目标运行时环境的 TLS v1.3 支持。这样,人们可以快速发现发生了什么:


public class TLS13Checker {


    public static void main(String[] args) {

        SSLContext context = null;

        try {

            KeyStore keyStore = KeyStore.getInstance("pkcs12");

            TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("PKIX");

            trustManagerFactory.init(keyStore);

            TrustManager[] trustAllCerts = trustManagerFactory.getTrustManagers();

            context = SSLContext.getInstance("TLSv1.3");

            context.init(null, trustAllCerts, new SecureRandom());


            SSLParameters params = context.getSupportedSSLParameters();

            String[] protocols = params.getProtocols();

            System.out.println("Java version : " + System.getProperty("java.runtime.version"));

            boolean supportsTLSv13 = false;

            for (String protocol : protocols) {

                if ("TLSv1.3".equals(protocol)) {

                    supportsTLSv13 = true;

                    break;

                }

            }

            if(supportsTLSv13) {

                System.out.println("JRE supports TLS v1.3!");

            } else {

                System.out.println("JRE does NOT support TLS v1.3!");

            }

            String[] suites = params.getCipherSuites();

            System.out.println("A total of " + suites.length + " TLS cipher suites is supported.");


        } catch (NoSuchAlgorithmException | KeyManagementException | KeyStoreException e) {

            e.printStackTrace();

            System.exit(42);

        }


    }

}

您可以简单地编译并运行它,输出将类似于我在最近的OpenJDK环境(在 MacOS 下)得到的结果:


Java version : 11.0.3+7

JRE supports TLS v1.3!

A total of 45 TLS cipher suites is supported.

此外,此列表概述了所有常规JSSE 密码套件名称。它可能有助于参考或其他(实施)目的。


希望能帮助到你。


查看完整回答
反对 回复 2022-06-08
?
qq_遁去的一_1

TA贡献1725条经验 获得超8个赞

似乎出于某种原因,Ubuntu 实际上在 openjdk-11-* 软件包下提供了 Java 10。



查看完整回答
反对 回复 2022-06-08
  • 2 回答
  • 0 关注
  • 302 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号