问题描述
我尝试使用我的 java 客户端连接到 mongodb atlas。连接未成功,因为存在 SSL 错误。在日志文件中出现以下文本:
SSL 握手失败:从主机发送了一个带有 SubjectDN [CN=*.mk3fd.mongodb.net] 的签名者。 SSL 握手异常的扩展错误消息是:[PKIX 路径构建失败:
sun.security.provider.certpath.SunCertPathBuilderException: 无法找到到请求目标的有效认证路径]。
是否有可能从 mk3fd.mongodb.net 连接下载公钥以将其添加到我的 jav 密钥库,或者是否有其他解决方案可以从 java 连接到 mongod 图集?
注意。使用 MongoDB Compass 连接到 MongoDB Atlas 工作正常。
解决方法
我找到了问题的答案。
使用 openssl,您可以获得所有密钥。我使用了接下来的两个命令并收到了三个不同的证书
openssl s_client -showcerts -servername mydatabase_shard.mk3fd.mongodb.net:27017 -connect mydatabase_shard.mk3fd.mongodb.net:27017 < /dev/null
和
openssl s_client -connect mydatabase_shard.mk3fd.mongodb.net:27017 < /dev/null
检索到的三个证书放在一个 jks 密钥库中。此密钥库用于获取与共享 MongoDB 集群的连接,它的作用就像一个魅力