2

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

现在我想与我的一些客户分享这个应用程序。他们有什么办法可以跳过将证书导入他们的密钥库?还是他们总是必须手动导入?

4

2 回答 2

3

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

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

于 2013-04-09T06:51:35.843 回答
0

你这样做是错的。每个客户端都应该使用自己的 SSL 证书:在本地生成密钥对,生成证书,然后离线发送给您。为所有客户端使用一个证书基本上等同于根本不使用一个证书:您无法唯一标识客户端,因此这一切都毫无意义。

于 2013-04-09T00:46:16.730 回答