一尘不染

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

go

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

TLS握手失败:x509:证书对tr12.northcentralus1-a.worker.database.windows.net,*。tr12.northcentralus1-a.worker.database.windows.net有效,而不对[server-
name] .database.windows有效。净

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

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

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

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

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

编辑2:这是连接字符串(如果有帮助的话),最重要的是,为什么它在本地运行,驱动程序版本相同,我在本地构建可执行文件并通过FTP进行部署,因此不为此应用程序使用Kudo部署。在A1正常工作之前,Azure已自动升级到v12。

服务器= [服务器名称] .database.windows.net;端口= 1433;数据库= [数据库名称];用户ID = [用户];密码=
[通过]; Trusted_Connection = False;加密= True;连接超时= 30;

受信任的连接应该真实吗?还是加密错误?将尝试更改这些内容以查看…。

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


阅读 176

收藏
2020-07-02

共1个答案

一尘不染

基于这个已解决的问题,我TrustServerCertificate从更改FalseTrue,并将此参数添加hostNameInCertificate到连接字符串中,它现在可以正常工作:

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

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

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

2020-07-02