我很新的工作在SSL证书,在java。默认情况下,java8支持TLSv1.2,但由于某些原因,我使用的应用程序需要显式地将SSLcontext设置为TLSv1.2。在这里我发现了一个台阶。但它需要KeyManager和TrustManager的数组,这看起来更多的时间让我了解什么和如何工作。当然,我会学习它,但为了一个快速的解决方案,我使用下面的代码,它的工作。但这有害吗?它是否仍然执行sslhandshake并创建安全通信?
SSLContext sc = SSLContext.getInstance("TLSv1.2");
sc.init(null, null, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
在没有信任库或密钥存储管理器的情况下初始化SSLContext是没有意义的。使用HTTPS连接的主要原因是因为它的SSL/TLS连接由于其增强的安全性而更加安全。
话虽如此,java文档明确提到必须设置前两个参数中的一个。