为了在JAVA中记录和示例使用密钥存储,我们需要指定密钥存储文件和密码,如下所示;
KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(new FileInputStream("/path/cert.p12"), properties.getTrustStorePassword().toCharArray());
还有一个参数可以指定密钥库和密码:
-Djavax.net.ssl.keyStore=/path/cert.p12; -Djavax.net.ssl.keyStorePassword=123456
如果在加载密钥库时必须指定密钥库文件路径和密码,那么该系统参数的意义何在?
如何使用系统参数中指定的密钥库?
我可以在不指定这个系统参数的情况下使用它,那么它的效果是什么?
这个参数的正确用法是什么?
系统属性可以为整个Java进程定义默认值。如果获得默认的SSLContext
,则系统属性将用于获取关键材料。通过在代码中创建自己的KeyStore
实例并初始化SSLContext
的新实例,可以忽略这些设置;例如,如果您必须使用自签名证书连接到服务器,这可能是可取的。