我正在使用 WSO2 ESB 4.0.0 和 Application Server 4.1.0 通过 SSL 相互交谈。两者都配置了相同的 keystore 。两者都在不同的服务器上。这样做的原因是 WSAS 只与 ESB 通信。我的证书不是自签名的。
我的问题是;对于仅与 ESB 通信的 WSAS,是否还需要将 CA 的证书导入 WSAS 的信任库?我相信这将完成信任链?
如果我不导入 CA 的证书,我会在我的 WSAS 日志中得到以下信息:
INFO | jvm 1 | 2011/11/16 15:56:21 | javax.net.ssl.SSLHandshakeException: null cert chain
INFO | jvm 1 | 2011/11/16 15:56:21 | at com.sun.net.ssl.internal.ssl.Handshaker.checkThrown(Handshaker.java:1015)
INFO | jvm 1 | 2011/11/16 15:56:21 | at com.sun.net.ssl.internal.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:480)
INFO | jvm 1 | 2011/11/16 15:56:21 | at com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1120)
INFO | jvm 1 | 2011/11/16 15:56:21 | at com.sun.net.ssl.internal.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1092)
INFO | jvm 1 | 2011/11/16 15:56:21 | at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:452)
谢谢
最佳答案
证书链中的所有证书都必须可供验证链的 Java 代码使用。如果您有公开购买的证书,那么根 CA 和中间 CA 很可能已经在 Java 使用的受信任 CA 证书列表中。如果没有,那么您需要将它们添加到您的信任库中。
关于java - 信任库是否也需要 CA 的证书来进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8158762/