我试图了解这段代码中发生了什么。
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
FileInputStream instream = new FileInputStream(new File("my.keystore"));
try {
trustStore.load(instream, "nopassword".toCharArray());
} finally {
instream.close();
}
SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
Scheme sch = new Scheme("https", socketFactory, 443);
httpclient.getConnectionManager().getSchemeRegistry().register(sch);
我的问题:
trustStore.load(instream, "nopassword".toCharArray());
到底在做什么?通过阅读文档load()
,将使用一些任意的“nopassword”从输入流(这只是我们刚刚创建的一个空文件)加载 KeyStore 数据。为什么不将其null
作为 InputStream 参数和一个空字符串作为密码字段加载呢?
然后当这个空的 KeyStore 被传递给 SSLSocketFactory 构造函数时会发生什么?这样的操作的结果是什么?
或者——这仅仅是一个示例,在实际应用程序中,您必须实际引用现有的密钥库文件/密码?