You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ActiveDirectoryPassword认证通过JDBC连接Azure Synapse DB失败

问题根因

你引入的依赖版本已经满足ActiveDirectoryPassword认证的要求,不需要额外添加其他依赖。
报错PKIX path building failed是SSL证书校验失败导致的:你代码里设置的setTrustServerCertificate(true)仅对JDBC和Azure Synapse数据库之间的连接SSL校验生效,而AD认证过程中MSAL4J会请求Azure AD的接口,这部分请求的SSL校验走的是JDK默认的信任链逻辑,你的JDK信任库中缺少Azure AD接口所用的根证书,因此校验失败。

解决方案

方案1:升级JDK8小版本(最简便)

如果你的JDK8版本低于8u181,直接升级到最新的JDK8正式版即可,新版JDK8的默认信任库已经包含了Azure AD所用的DigiCert根证书,无需额外配置。

方案2:手动导入根证书到JDK信任库

如果不方便升级JDK,可以手动导入证书:

  1. 用浏览器访问https://login.microsoftonline.com,导出站点的根证书(一般是DigiCert Global Root G2,格式选CER即可)
  2. 执行keytool命令导入到JDK信任库:
keytool -importcert -alias digicert_global_root_g2 -file 你导出的证书本地路径.cer -keystore $JAVA_HOME/jre/lib/security/cacerts
  1. 当提示输入信任库密码时,输入JDK默认信任库密码changeit,确认导入即可。
  2. 重启应用验证连接。

方案3:自定义信任库(不修改全局JDK配置)

如果不想改动全局JDK的信任库,可以在应用启动时添加JVM参数指定自定义信任库:

-Djavax.net.ssl.trustStore=自定义信任库文件路径
-Djavax.net.ssl.trustStorePassword=自定义信任库密码

注意:网上流传的禁用SSL校验的方案仅可用于本地临时测试,生产环境禁止使用,会带来严重的安全风险。

内容的提问来源于stack exchange,提问作者techcrazy007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:06:03