使用JDBC和默认连接字符串(管理控制台说要使用的字符串)连接到Azure SQL的证书异常

使用JDBC和默认连接字符串(管理控制台说要使用的字符串)连接到Azure SQL的证书异常,jdbc,azure,Jdbc,Azure,我想从jdbc连接到Azure SQL Server 我从azure管理控制台复制连接字符串。有点像: jdbc:sqlserver://XXXX.database.windows.net:1433;数据库=yyy;使用者=ZZZZZ@XXXX;密码=ppppppppppppp;加密=真;hostNameInCertificate=*.database.windows.net 当我尝试使用此值连接时,出现以下错误: com.microsoft.sqlserver.jdbc.SQLServerEx

我想从jdbc连接到Azure SQL Server

我从azure管理控制台复制连接字符串。有点像:

jdbc:sqlserver://XXXX.database.windows.net:1433;数据库=yyy;使用者=ZZZZZ@XXXX;密码=ppppppppppppp;加密=真;hostNameInCertificate=*.database.windows.net

当我尝试使用此值连接时,出现以下错误:

com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法运行 使用安全套接字建立到SQL Server的安全连接 层(SSL)加密。错误: “java.security.cert.CertificateException:未能验证 安全套接字层(SSL)期间证书中的服务器名称 初始化。服务器名称为*.database.windows.net,在 证书是data.am2-1.database.windows.net。

然后,如果我将*.database.windows.net更改为data.am2-1.database.windows.net,就像它在异常中所说的那样,它可以正常工作

那么,设置这个名称有问题吗?我觉得如果它是默认的通配符,那么它可能会改变?当它改变时,我假设我将无法再连接。
还有其他人有这个问题吗?我正在使用我能找到的最新的SQL Server jdbc驱动程序。

结果是,将SQL Server jdbc版本升级到4.0版解决了这个问题。

我在jdbc驱动程序版本4.1上也有同样的问题,降级到4.0解决了这个问题