由于缺少公钥,连接到 mongodb 图集的握手失败

问题描述

我尝试使用我的 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 集群的连接,它的作用就像一个魅力

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...