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

无Java源码时,通过JDBC连接字符串配置SSL连接Azure MySQL灵活服务器

仅通过JDBC连接字符串配置Azure MySQL SSL连接方案

可用的参数组合(无需修改源码)

针对无法修改应用源码的场景,有两种无需操作JDK密钥库或仅需引用自定义密钥库的连接字符串方案:

方案1:直接指定PEM证书文件(推荐)

适用于MySQL Connector/J 8.0.23及以上版本,无需提前导入证书到密钥库,直接在连接字符串中指定证书路径:

jdbc:mysql://myname.mysql.database.azure.com:3306/databaseName?useSSL=true&requireSSL=true&serverSslCert=C:/path/to/DigiCertGlobalRootCA.crt.pem

参数说明:

  • useSSL=true:启用SSL加密连接
  • requireSSL=true:强制要求SSL连接,拒绝非SSL的连接请求
  • serverSslCert:填写你下载的DigiCert根证书PEM文件的绝对路径,Windows路径可以用/或者转义后的\\

方案2:引用自定义密钥库

如果你已经将证书导入到自定义密钥库(比如你创建的mycerts文件),可以使用以下连接字符串(注意修正之前的路径问题):

jdbc:mysql://myname.mysql.database.azure.com:3306/databaseName?useSSL=true&verifyServerCertificate=true&trustCertificateKeyStoreUrl=file:C:/path/to/mycerts&trustCertificateKeyStorePassword=changeit

关键修正点:

  • trustCertificateKeyStoreUrl必须添加file:前缀,明确指定密钥库文件路径
  • 确保密钥库文件的路径正确,且应用进程有读取该文件的权限

之前报错的可能原因

你之前使用系统cacerts仍失败,大概率是以下问题:

  1. JDK路径不匹配:应用实际使用的JDK和你导入证书的JDK不是同一个,导致证书未被加载
  2. 参数转义错误:配置文件中如果是纯文本格式,不需要用&,直接用&分隔参数即可
  3. 防火墙限制:Azure MySQL灵活服务器的防火墙规则未开放应用所在服务器的IP地址

额外注意事项

  • 确认应用使用的MySQL Connector/J版本为8.0.x及以上,旧版本对Azure SSL连接的支持存在兼容性问题
  • Windows路径中的反斜杠\需要转义为\\,或者直接使用正斜杠/避免转义问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:44:50