分发自签名SSL证书:如何跳过导入密钥库的要求

时间:2013-04-08 19:09:28

标签: java ssl ssl-certificate keystore

我开发了一个Java应用程序,它使用自签名SSL证书通过https与我的服务器通信。

现在我想与我的一些客户分享这个应用程序。有没有办法让他们跳过将证书导入到他们的密钥库?或者他们总是要手动导入它?

2 个答案:

答案 0 :(得分:3)

根据您发布的链接,您正在谈论单向SSL,您需要让您的客户知道服务器的自签名证书(对吗?)。 因此,您的客户端应用程序需要的是所谓的信任存储。信任存储区是一个包含您信任的所有证书的Java密钥库,例如要连接的服务器的证书。 java安装中的cacerts文件包含默认情况下受信任的各种证书。

您可以提供自己的信任库,其中包含服务器证书和客户端应用程序,而不是将服务器证书安装到客户端Java安装的cacerts文件中。然后,需要使用系统属性-Djavax.net.ssl.trustStore=path/to/your/truststore启动客户端应用程序。

答案 1 :(得分:0)

你做错了。每个客户端都应使用自己的SSL证书:在本地生成密钥对,生成证书,并将其发送给您。对所有客户使用单一证书基本上相当于完全不使用一个证书:您无法唯一地识别客户端,因此它毫无意义。