我对 ssl 很陌生,但我设法在我的 java 应用程序上设置服务器和客户端认证。我使用 keytool 生成了密钥库和信任库。这很好用。
现在我正在寻找将新客户端证书添加到我的服务器信任库的方法,如果这样做,我的服务器将接受来自新客户端的连接。
我目前的计划是:
- 让客户打电话给我并请求启动程序
- 让客户端运行生成证书的小程序
- 让客户发送证书给我
- 现在我可以将证书添加到服务器信任库
听起来很简单,但是当您想到它时,可能会出错:
- 当客户向我发送证书时,有人可以拦截它。当我从密钥库导出证书时,生成的证书是否足以建立客户端连接?还是证书只包含公共信息,而“私人”信息是否仍在密钥库中?
- 在服务器端实现我自己的 TrustManager 以便我可以轻松管理受信任的客户端证书是否明智?这是一件很难做的事情,还是我应该在 keytool 周围添加一个小包装。
感谢您的想法!