我正在尝试通过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证书”。为什么会这样?
答案 0 :(得分:0)
我通过安装另一个包含SSL支持的MongoDB版本解决了我的问题。我没有的那个。