问题描述
我正在用具有2个接口的Scala语言开发应用程序。对于第一个应用程序,behavies作为服务器,对于第二个应用程序behavies作为客户端。我希望双方都使用HTTPS安全连接(相互身份验证)。现在,我尝试将密钥库拆分为一个实例包含第一个接口的证书,另一个实例包含第二个接口的证书。因此,我实例化了KeyStore的2个变量,传递了不同的证书,然后初始化了2个不同的KeyManagerFactory。最后,我初始化2个不同的SSLContext以便在HTTPS连接中使用它们。启用ssl:握手调试我可以看到:
*** ServerHellodone
Warning: no suitable certificate found - continuing without client authentication
*** Certificate chain
<Empty>
***
似乎我的应用程序无法满足服务器的CertificateRequest(此调试与客户端有关),而服务器端的连接运行良好。 所以,我的问题是:我可以使用两个不同的密钥库(和KeyManagerFactory)还是Java不支持呢?我该怎么做?
更新
我刚刚读到我只能在X509ExtendedKeyManager中使用一个KeyStore(我以前的解决方案是一个带有两个证书的KeyStore),并使用方法choiceClientAlias()选择要使用的证书。谁知道我该怎么做?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)