我有一个SSLSocketFactory和一个TrustManagerFactory,如下所示:
TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");
tmf.init(trustStore);
LogUtils.log("SSL: did init TrustManagerFactory with trust keyStore");
SSLContext context = SSLContext.getInstance("TLS");
context.init(null, tmf.getTrustManagers(), null);
urlConnection.setSSLSocketFactory(context.getSocketFactory());
将上下文TrustManagers设置为null会有什么影响?
所以
变化:
context.init(null, tmf.getTrustManagers(), null);
到此:
context.init(null, null, null);
答案 0 :(得分:2)
在Java api documentation中,它提供了有关方法javax.net.ssl.SSLContext.init(KeyManager[] km, TrustManager[] tm, SecureRandom random)
的更多详细信息。假设Android框架没有更改实现,为tm输入传递null
将使用Android预安装的信任管理器来接受服务器SSL证书。