【发布时间】:2012-09-28 11:37:49
【问题描述】:
当我在 Java 7 中创建 SSLServerSocket 时,服务器正确地使用了我的服务器证书和密钥。该证书是由 ca 的 sub ca 颁发的。因此,从根证书到服务器证书的完整链有四个证书。 完整的链存在于密钥库/信任库中。
但是,当客户端连接服务器时,始终只发送服务器证书本身。 这也适用于基于 Java 的 Web 服务器,例如 Jetty。
因为大多数客户端只安装了根 ca 证书,而没有安装两个子 ca 证书,所以这是一个大问题。
如何强制 Java 在 SSL/TLS 握手中发送完整的证书链?
【问题讨论】:
-
您是否在您的密钥库中配置了这个条目以及整个链本身(如this question 中所述)?
-
完整的链存在于密钥库中 - 我在我的问题中更新了该详细信息。
-
澄清一下,我的意思不仅仅是在密钥库中拥有完整的链,我的意思是在密钥库的正确条目中拥有完整的钥匙链(也有私钥的那个)。
-
对不起,我不明白你的问题。 “钥匙扣”是什么意思?只需要一个密钥 - 用于 ssl 证书的密钥。
-
对不起,错字,我的意思是“链”。您需要在密钥库的同一条目中导入完整的链,在不同的条目中拥有形成链的证书是不够的。 (您是否按照here 所述的程序进行操作?)
标签: java ssl certificate