0
KeyStore ks = KeyStore.getInstance("PKCS12");
FileInputStream fis = new FileInputStream("/path/to/file.p12");
ks.load(fis, "password".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, "password".toCharArray());
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(kmf.getKeyManagers(), null, null);
此代码正常工作。但是对于这种情况,有没有可能使用keystore.jks?例如,我使用带有别名的pkcs12import工具将file.p12导入到keystore.jks中。然后我使用System.setProperty(“javax.net.ssl.keyStore”,“C:/Sun/SDK/jdk/jre/lib/security/keystore.jks”);在java代码不写证书路径和密码,并把它从keystore.jks文件请求客户端证书认证的URL
你也可以指定商店类型的系统属性,所以你不需要导入到JKS。 – erickson
可能重复的[java - truststore的路径 - 设置属性不起作用?](http://stackoverflow.com/questions/2138574/java-path-to-truststore-set-property-doesnt-work) – Marged
对于系统属性我使用keystore.jks导入了许多证书,所以我无法使用它。 –