Azure SQL 数据库错误自 v12 升级后 TLS 握手失败

Azure SQL Database error TLS Handshake failed since v12 upgrade

我从今天早上开始收到这个错误,新的 v12 更新服务器/Azure SQL 数据库:

TLS Handshake failed: x509: certificate is valid for tr12.northcentralus1-a.worker.database.windows.net, *.tr12.northcentralus1-a.worker.database.windows.net, not [server-name].database.windows.net

在本地连接到 Azure SQL 数据库没有问题。在 Azure Web App 上无法建立连接。

与本地相同的连接字符串 - 在 v12 更新之前工作正常。

我正在使用这个 SQL 驱动程序 github.com/denisenkom/go-mssqldb/

任何指针,不相信我应该更改连接字符串?为什么它在本地而不是在 Azure Web 应用程序上工作。

编辑 1:刚刚尝试用 tr12 替换 [server-name].database.windows.net...但是无法建立 tcp 连接。

编辑 2:这里是连接字符串,如果它有帮助的话,底线,为什么它在本地工作,相同的驱动程序包版本,我在本地构建可执行文件并通过 FTP 部署,所以不使用 Kudo 部署对于这个应用程序。一直在 A1 工作,直到 Azure 自动升级到 v12。

Server=[server-name].database.windows.net;Port=1433;Database=[dbname];User ID=[user];Password=[pass];Trusted_Connection=False;Encrypt=True;Connection Timeout=30;

可信连接应该是真的吗?或加密错误?将尝试更改那些以查看....

编辑 3:我查看了 Azure 门户的连接字符串,v12 似乎有这个新参数:TrustServerCertificate=False 但没有机会,没有解决问题

基于这个已关闭的问题,我将 TrustServerCertificateFalse 更改为 True 并将此参数 hostNameInCertificate 添加到连接字符串,现在可以正常工作了:

https://github.com/denisenkom/go-mssqldb/issues/55

TrustServerCertificate=True;hostNameInCertificate=*.database.windows.net;

Azure 门户建议有 TrustServerCertificate=False 而没有 hostNameInCertificate