2017-02-21 51 views
-1

我正在开发一个与多个(微)服务集成的平台(java),所有通信都通过SSL进行。所以该平台充当SSL客户端。未使用Truststore的Java SSL

我无法将所有不同服务的证书导入到我的平台信任库中,而是我们想为不同的服务使用不同的SSLContext。

这种方法的缺点之一是我们需要维护这么多的信任库。

我们正在考虑从服务发现中获取证书链并按原样使用证书,并将其输入到SSLContext,而不将其导入到trusstore中然后使用它。

TL; DR 有没有一种方法可以在Java中配置SSLContext而不使用信任存储,但仅使用ca bundle作为PEM/cert?

+0

当然有办法,不过......“保持这么多的信任库”不好,“保持这么多的独立证书”好不好?有什么区别? – Vadim

+0

你的目标不明显。首先,除非需要与发送自签名证书的服务器进行通信,否则根本不需要定制信任库。其次,没有理由将自签名证书保存在单独的信任库中。不清楚你在问什么。 – EJP

回答

0

您可以从this关于创建SSLSocketFactory的第一部分获得灵感。一旦你破解你的逻辑,使其成为默认象下面这样:

HttpsURLConnection.setDefaultSSLSocketFactory(mySslSocketFactory);