Java 8无法强制TLS创建sslcontext?
我想将TLS/TLSv1.2用于ssl上下文:Java 8无法强制TLS创建sslcontext?,java,ssl,java-8,tls1.2,sslcontext,Java,Ssl,Java 8,Tls1.2,Sslcontext,我想将TLS/TLSv1.2用于ssl上下文: SSLContext context = SSLContext.getInstance("TLSv1.2"); context.init(new KeyManager[] { km }, new TrustManager[] { new MyTrustStore(keyStore) }, new SecureRandom()); System.out.println("PROTOCOL: "+SSLContext.getDefault().getS
SSLContext context = SSLContext.getInstance("TLSv1.2");
context.init(new KeyManager[] { km }, new TrustManager[] { new MyTrustStore(keyStore) }, new SecureRandom());
System.out.println("PROTOCOL: "+SSLContext.getDefault().getSupportedSSLParameters().getProtocols()[0]);
我们正在使用定制的信任库和密钥管理器,这里忽略它们,但我们确实需要它们
现在每次打印SSLv2Hello
我两者都试过了
SSLContext context = SSLContext.getInstance("TLSv1.2");
及
两个都不起作用
作为参考,它在JDK 1.8.0_171上运行
感谢您的帮助您可以尝试一种定制方式。下面是一个kotlin样本
val sslContext = SSLContexts.custom().setProtocol("TLSv1.2").build()
参考资料:您是否打印了getProtocols返回的阵列的其余元素?SSLv2Hello不是实际的SSLv2协议或任何其他SSL,它只是一个兼容性问题,在2004-2010年的过渡期内,允许更好地处理旧服务器的错误。它不再需要,并且多久会导致错误,并且在j7看到getDefaultParameters而不是getSupportedParameters后默认情况下已被禁用;只是不要添加任何代码来启用它。。另外,您可能希望查看实际上下文,而不是getDefault。
val sslContext = SSLContexts.custom().setProtocol("TLSv1.2").build()