Java客户端如何自动接受来自服务器的自签名证书

时间:2012-02-28 09:40:33

标签: java ssl certificate self-signed

我正在实现一个使用自签名证书的服务器。将证书分发给客户的最佳方法是什么?我可以将证书导入java密钥库并设置客户端。但有没有办法避免每个客户端手动导入证书。这可以由java客户端自动完成吗?我浏览了JSSE参考,但无法弄清楚如何做到这一点。非常感谢任何帮助。

此致 萨姆帕斯。

1 个答案:

答案 0 :(得分:0)

查看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() );