升级JDK、Spring Boot后Azure SQL Server SSL连接验证失败求助
解决Azure SQL Server私链连接SSL证书名称不匹配问题
升级到JDK 21、Spring Boot 2.7.16及mssql-jdbc-12.4.2.jre11后,出现SSL证书名称与私链域名不匹配的连接异常,可通过以下方案解决:
指定服务器名称覆盖参数
在JDBC连接URL中添加serverNameOverride参数,强制SSL验证时使用你的私链域名而非证书中的控制节点域名。示例URL:jdbc:sqlserver://iapps-in-dev-sql-server.privatelink.database.windows.net:1433;databaseName=你的数据库名;serverNameOverride=iapps-in-dev-sql-server.privatelink.database.windows.net;encrypt=true;trustServerCertificate=false对应Spring Boot配置文件中:
spring.datasource.url=jdbc:sqlserver://iapps-in-dev-sql-server.privatelink.database.windows.net:1433;databaseName=你的数据库名;serverNameOverride=iapps-in-dev-sql-server.privatelink.database.windows.net;encrypt=true;trustServerCertificate=false临时禁用主机名验证(不推荐生产环境)
如果需要快速验证问题,可添加trustServerCertificate=true参数跳过证书主机名验证,但此操作会降低连接安全性,仅建议用于测试环境:spring.datasource.url=jdbc:sqlserver://iapps-in-dev-sql-server.privatelink.database.windows.net:1433;databaseName=你的数据库名;encrypt=true;trustServerCertificate=true确认Azure私端点配置
检查Azure门户中SQL Server的私端点配置,确保私链域名iapps-in-dev-sql-server.privatelink.database.windows.net已正确关联到目标SQL实例,私端点的DNS记录配置无误。
内容的提问来源于stack exchange,提问作者Sreejesh
相关产品推荐
相关产品推荐

