信任库是否还需要CA的证书进行身份验证?

时间:2011-11-16 21:12:08

标签: java ssl wso2 wso2esb truststore

我正在使用WSO2 ESB 4.0.0和Application Server 4.1.0通过SSL相互通信。两者都配置了相同的密钥库。两者都在不同的服务器上。这样做的原因是WSAS只与ESB通信。我的证书不是自签名的。

我的问题是;为了使WSAS只与ESB通信,我是否还需要将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)

谢谢

2 个答案:

答案 0 :(得分:4)

证书链中的所有证书都必须可用于验证链的Java代码。如果您有公开购买的证书,那么根和中间CA很可能已经在Java使用的可信CA Certs列表中。如果没有,那么您需要将它们添加到您的信任库。

答案 1 :(得分:3)

如果您的证书颁发者是像GoDaddy之类的intermediate certificate authority,您将需要证书。中间证书通过您的不受信任的中间CA从您的证书建立证书链,并最终终止(希望)在受信任的根证书颁发机构。