如何使用DataGrip通过Atlas托管x.509证书连接MongoDB?
解决DataGrip通过Atlas托管X.509证书连接MongoDB Atlas的"Certificate verification failed"问题
核心排查方向(其他客户端正常,问题集中在DataGrip配置细节)
确认客户端证书完整性
- 用文本编辑器打开你的
.pem证书文件,检查是否包含完整的私钥和证书块:- 私钥块:
-----BEGIN PRIVATE KEY-----到-----END PRIVATE KEY----- - 证书块:
-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----
- 私钥块:
- 如果证书有缺失或损坏,重新从MongoDB Atlas控制台下载对应的x.509证书。
- 用文本编辑器打开你的
导入MongoDB Atlas根CA证书到DataGrip信任存储
部分版本的DataGrip默认不信任Atlas的根CA,导致服务器证书验证失败:- 获取MongoDB Atlas的根CA证书(可从Atlas控制台的"Connect > Connect with MongoDB Shell"页面复制内容,保存为
ca.pem文件) - 打开DataGrip,依次进入
File > Settings > Tools > Server Certificates - 点击右上角的
+按钮,选择Import from File,导入刚才保存的ca.pem,并勾选Trust选项,点击OK保存配置。
- 获取MongoDB Atlas的根CA证书(可从Atlas控制台的"Connect > Connect with MongoDB Shell"页面复制内容,保存为
修正DataGrip连接配置的细节
- Username字段必须匹配证书的CN值:Atlas的x.509认证要求用户名是证书的
CN字段值(比如证书内容中的CN=mongodb-atlas-xxxxxx-xxxx),不要填写Atlas控制台的普通用户名。 - SSL配置项检查:
- 确保
SSL选项已勾选 - 在
SSL下拉菜单中选择PEM file,并正确指定你的客户端.pem证书路径 - 确认
Verify server certificate选项处于勾选状态(如果之前取消过,重新勾选)
- 确保
- 连接串格式:使用Atlas提供的
mongodb+srv连接串,不要手动修改主机地址或端口。
- Username字段必须匹配证书的CN值:Atlas的x.509认证要求用户名是证书的
检查DataGrip使用的JDK版本
旧版JDK可能不支持Atlas证书的签名算法,导致验证失败:- 打开
File > Project Structure > SDKs - 添加或切换到JDK 11及以上版本(推荐JDK 17),将其设置为DataGrip的默认SDK
- 重启DataGrip后重新尝试连接。
- 打开
用DataGrip内置终端测试连接(验证证书有效性)
在DataGrip的Terminal中执行Mongo Shell连接命令:mongosh "mongodb+srv://your-cluster-url.mongodb.net/" --ssl --auth --tlsCertificateKeyFile /path/to/your-client-cert.pem --tlsCAFile /path/to/ca.pem如果命令能成功连接,说明证书和网络配置没问题,回到GUI配置检查是否有遗漏项。
内容的提问来源于stack exchange,提问作者h4ckthepl4net
相关产品推荐
相关产品推荐

