我正在实现一个使用自签名证书的服务器。将证书分发给客户的最佳方式是什么?我可以将证书导入 java 密钥库并设置客户端。但是有什么办法可以避免每个客户手动导入证书。这可以由java客户端自动完成吗?我浏览了 JSSE 参考,但无法弄清楚如何做到这一点。将不胜感激任何帮助。
问候, Sampath。
我正在实现一个使用自签名证书的服务器。将证书分发给客户的最佳方式是什么?我可以将证书导入 java 密钥库并设置客户端。但是有什么办法可以避免每个客户手动导入证书。这可以由java客户端自动完成吗?我浏览了 JSSE 参考,但无法弄清楚如何做到这一点。将不胜感激任何帮助。
问候, Sampath。
查看KeyStore
课程。它允许您操作 Java 密钥库。
代码示例:
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(null, null); // Creates a new keystore
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("cert.cer")); // Or read from URL
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate cert = null;
if (bis.available() > 0) {
cert = cf.generateCertificate( bis );
ks.setCertificateEntry( "SGCert", cert );
}
ks.setCertificateEntry("SGCert", cert);
ks.store(new FileOutputStream("out.keystore"), "secret".toCharArray() );