DataGrip打开MS SQL表报SunCertPathBuilderException错误如何解决
DataGrip访问MS SQL触发SunCertPathBuilderException报错解决方法
报错信息
在DataGrip中打开MS SQL数据库表时触发报错,完整报错内容:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
常规检索到的解决方案多涉及Java代码调整,不适用于DataGrip客户端操作场景,以下为该场景下无需修改代码的可落地解决方法:
解决方法
方法1:调整数据源SSL连接配置(内网/测试环境优先尝试,操作成本最低)
- 打开DataGrip数据源管理面板,选中目标MS SQL数据源
- 切换到连接属性/SSL配置标签,找到两个关键配置项:
- 将
encrypt配置项的值设为false,关闭连接强制加密 - 若安全要求必须保留加密传输,将
trustServerCertificate配置项的值设为true,跳过客户端证书链校验
- 将
- 保存配置后测试连接,连通即可正常使用
注意:该方法跳过了SSL证书校验,仅适用于可信内网、测试环境,生产环境建议使用证书导入方案保障连接安全
方法2:导入服务端证书到DataGrip内置信任库(生产环境推荐)
- 从MS SQL服务端导出数据库使用的SSL根证书,得到本地
.cer格式证书文件 - 定位DataGrip安装目录下内置JRE的信任库文件,默认路径为
<DataGrip安装根目录>/jbr/lib/security/cacerts,该信任库的默认访问密码为changeit - 打开本地终端执行证书导入命令:
keytool -import -alias mssql-db-cert -file <本地证书文件完整路径> -keystore <上述cacerts文件完整路径> -storepass changeit - 命令执行过程中出现信任确认提示时,输入
yes回车完成导入 - 完全退出并重启DataGrip后,重新连接数据库即可正常访问
- 从MS SQL服务端导出数据库使用的SSL根证书,得到本地
方法3:切换兼容版本的MS SQL JDBC驱动
部分版本DataGrip自带的mssql-jdbc驱动存在证书校验逻辑兼容问题,可在数据源配置的驱动管理页,切换JDBC驱动版本:可尝试回退到长期稳定版本(如10.2.x版本),或升级到官方标注修复了证书校验缺陷的最新版本,等待驱动自动下载完成后重新测试连接即可。
内容的提问来源于stack exchange,提问作者Hrvoje
相关产品推荐
相关产品推荐

