ca有效,但是truststore不适用于mongo ssl

时间:2019-11-22 19:53:47

标签: java mongodb ssl

我有一个ca.pem的自定义CA。我使用命令创建了一个没有证书的信任库,

keytool -import -v -trustcacerts -alias \
endeca-ca -file ca.pem -keystore truststore.jks

当我尝试使用mongo cli和ca.pem连接到mongo时,它会起作用。

如果我将设置的绝对路径truststore.jks作为系统属性javax.net.ssl.trustStore传递,则它不起作用。在mongo服务器中,它引发以下错误,

  

2019-11-22T19:45:48.384 + 0000 I NETWORK [conn749]终端连接   172.17.0.1:53384(0个连接现在打开)

     

2019-11-22T19:45:48.892 + 0000我接受172.17.0.1:53386#750的网络[监听器]连接   (现已打开1个连接)

     

2019-11-22T19:45:48.893 + 0000我联网   [conn750]接收来自客户端的请求错误:SSLHandshakeFailed:   SSLHandshakeFailed。从172.17.0.1:53386终止连接   (连接ID:750)

在客户端,出现以下错误,

  

com.mongodb.MongoSocketReadException:已提前到达   流在   com.mongodb.connection.SocketStream.read(SocketStream.java:87)在   com.mongodb.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:547)     在   com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:418)     在   com.mongodb.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:290)     在   com.mongodb.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:255)     在   com.mongodb.connection.CommandHelper.sendAndReceive(CommandHelper.java:84)     在   com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:34)     在   com.mongodb.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:91)     在   com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:51)     在   com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:127)     在   com.mongodb.connection.DefaultServerMonitor $ ServerMonitorRunnable.run(DefaultServerMonitor.java:114)     在java.lang.Thread.run(Thread.java:748)

此外,我在keytool -list中使用证书的jks获得的指纹与我在openssl -fingerprint选项中获得的指纹匹配。

可能是什么问题?

0 个答案:

没有答案