我想从jdbc连接到Azure SQL Server。
我从蔚蓝管理控制台复制连接字符串。它类似于:
jdbc:sqlserver://XXXX.database.windows.net:1433;database=YYYY;user=ZZZZZ@XXXX;password=PPPPPPPPPPP;encrypt=true;hostNameInCertificate=*.database.windows.net
当我试图连接到这个值时,我会得到以下错误:
com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法使用安全套接字层(SSL)加密建立到Server的安全连接。错误:“data.am2-1.database.windows.net.:在安全套接字层(SSL)初始化期间,无法验证证书中的服务器名。服务器名为*.database.windows.net,证书中的名称为*.database.windows.net。
然后,如果我将*.database.windows.net更改为data.am2-1.database.windows.net,就像它在异常中说的那样,它可以正常工作。
那么,设置这个名称是个问题吗?我觉得如果这是一张默认的外卡,那么它很可能会改变吗?当它出现的时候,我想我就不能再连接了。还有其他人有这个问题吗?我正在为SQL Server使用最新的jdbc驱动程序,我可以找到这些驱动程序。
发布于 2022-08-17 18:24:40
您也可以在连接字符串中添加trustServerCertificate=true,但从安全性的角度来看,不建议这样做。
https://stackoverflow.com/questions/11755951
复制相似问题