Mongodb Java驱动程序将无法通过TLS连接

时间:2018-10-22 13:27:30

标签: java mongodb ssl

我正在尝试通过TLS连接到我的mongoDb。因此,我使用以下参数启动了守护程序:

mongod --sslMode requireSSL --sslPEMKeyFile <pem> --sslCAFile <ca>

我将rootCA导入到Java密钥库中,并通过Java客户端应用程序(Springboot)中的JVM参数进行设置。我还通过JVM参数将TLS设置为1.1版。

但是我收到以下错误:

com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting to 
connect. Client view of cluster state is {type=Unknown, servers= 
[{address=10.0.2.103:27017, type=Unknown, state=Connecting, exception= 
{com.mongodb.MongoException$Network: Exception opening the socket}, caused 
by {javax.net.ssl.SSLHandshakeException: Remote host closed connection 
during handshake}, caused by {java.io.EOFException: SSL peer shut down 
incorrectly}}]

我的证书是使用我自己的CA签名的。

我在线阅读了有关客户端证书的内容,但是CA是否足以验证服务器具有有效的证书?

编辑: 通过安装具有SSL支持的mongodb解决了该问题。现在,我遇到了另一个问题。我已经将我的ca.pem导入了我的信任库,并将我的client.pem导入了我的密钥库(并在我的springboot属性中进行了设置)。但是mongodb服务器始终声明:“对等方未提供SSL证书”。为什么会这样?

1 个答案:

答案 0 :(得分:0)

我通过安装另一个包含SSL支持的MongoDB版本解决了我的问题。我没有的那个。