这里的另一个遗留支持问题!
我们有一个服务器多客户端网络,其中每个组件都有一个自签名证书,并被添加到服务器/客户端的信任库中。我们在这里没有使用证书颁发机构。
现在我们的问题是我们需要升级所有证书以获得更好的安全性。新的客户端将带有更新的证书,甚至服务器也将拥有新的证书。
我们的问题是如何处理老客户。升级老客户的密钥库是最后的手段。
不起作用的事情:
在服务器信任库中添加新旧证书:即使客户端正在对服务器进行身份验证,服务器证书也不会出现在客户端信任库中。
为新客户端使用新端口:我们考虑为新客户端使用新端口并为旧客户端继续使用旧端口,但问题是有多个应用程序面临这个问题,因此我们必须搜索多个新端口不被其他产品使用。
FWIW:服务器使用 Java,客户端使用 C++
在 EJP 的回答之后编辑
我可能在这里问了一个非常愚蠢的问题,但只是想确定一下。绑定后,绝对无法编辑套接字的 SSL 上下文。正确的?
另外,我们可以选择握手期间使用的服务器证书吗?我知道chooseClientAlias()
和chooseServerAlias()
方法,但是在发送客户端 Hello 消息之前,我们不知道要使用哪个证书。