Java 导出的证书包含私有信息/是否实现自己的trustmanager?

Java 导出的证书包含私有信息/是否实现自己的trustmanager?,java,ssl,keytool,truststore,Java,Ssl,Keytool,Truststore,我对ssl非常陌生,但我设法在java应用程序上设置了服务器和客户端认证。我使用keytool生成了密钥库和信任库。这很有效 现在,我正在寻找向我的服务器信任库添加新客户端证书的方法,如果这样做,我的服务器将接受来自新客户端的连接 我目前的计划是: 让客户打电话给我,请求启动程序 让客户端运行生成证书的小程序 让客户将证书发送给我 现在我可以将证书添加到服务器信任库 听起来很简单,但当你想到它时,有几件事可能会出错: 当客户端向我发送证书时,有人可以拦截它。从密钥库导出证书时,生成的证书是否足以

我对ssl非常陌生,但我设法在java应用程序上设置了服务器和客户端认证。我使用keytool生成了密钥库和信任库。这很有效

现在,我正在寻找向我的服务器信任库添加新客户端证书的方法,如果这样做,我的服务器将接受来自新客户端的连接

我目前的计划是:

  • 让客户打电话给我,请求启动程序
  • 让客户端运行生成证书的小程序
  • 让客户将证书发送给我
  • 现在我可以将证书添加到服务器信任库
  • 听起来很简单,但当你想到它时,有几件事可能会出错:

  • 当客户端向我发送证书时,有人可以拦截它。从密钥库导出证书时,生成的证书是否足以设置客户端连接?或者证书是否只包含公共信息,“私有”信息是否仍在密钥库中
  • 在服务器端实现自己的TrustManager,以便轻松管理受信任的客户端证书,这是否明智?这是一件很难做到的事情,还是我应该在keytool周围添加一个小包装器
  • 谢谢你的想法

    或者证书是否只包含公共信息,“私有”信息是否仍在密钥库中

    在服务器端实现自己的TrustManager,以便轻松管理受信任的客户端证书,这是否明智


    不可以。您应该让truststore系统执行它想要执行的身份验证操作,然后使用握手侦听器获取对等证书以对其进行授权。不要混淆或混淆这两个步骤:它们是不同的,并且这两个部分都是必需的。

    嗨,EJP,谢谢你的回复,我非常感谢。很高兴听说导出的证书只包含公共信息,这为我节省了很多时间来确保这一步骤的安全。我们将对ssl握手侦听器进行一些研究。