java – 具有多个主机证书的Trustore

我有一个工作演示,其中applet通过https连接到服务器(“A”).服务器的证书链由applet通过JKS信任库(myTrustManagerFactory.init(mytrustStore.jks))加载.它工作正常.

现在我需要这个applet通过https连接到另一个服务器(“B”).服务器的证书由自签名CA签名.所以我需要将这个自签名CA传递给applet TrustManagerFactory.

>我可以将它放在与服务器“A”相同的JKS信任中吗?
如果是这样,我是否必须使用第二个别名保存此自签名CA?我尝试过,但连接到服务器“B”时出错.有没有办法为TrustManagerFactory指定服务器“B”别名?
>我应该在调用第二台服务器之前使用第二个JKS或某些SSL上下文“重置”吗?

谢谢你的帮助,
鲁道夫

解决方法

我自己找到了解决方案:
错误消息“证书链接错误”不反映信任库中的链问题,而是服务器中的链问题.

因此,如果它可能有所帮助,可以在Truststore中加载几个(链)证书来信任https中的多个服务器.
每个服务器只需要一个别名(别名无关紧要),以及信任该服务器所需的(链)证书.

切换与其他服务器的通信时无需重置任何内容.只需在单个“myTrustManagerFactory.init(mytrustStore.jks)”方法中加载服务器的所有证书链.

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...