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

我从今天早上收到此错误,新的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但没有机会,没有解决问题

最佳答案 基于此已关闭的问题,我将TrustServerCertificate从False更改为True,并将此参数hostNameInCertificate添加到连接字符串中,它现在正在运行:

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

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

Azure门户建议使用TrustServerCertificate = False且不使用hostNameInCertificate.

点赞