从今天早上开始,我收到此错误,新的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/
github.com/denisenkom/go-mssqldb/
任何指针,不相信我应该更改连接字符串吗?为什么它在本地而不在Azure Web应用程序上有效。
编辑1:刚尝试[server-name].database.windows.net用tr12 替换…但是无法建立tcp连接。
[server-name].database.windows.net
编辑2:这是连接字符串(如果有帮助的话),最重要的是,为什么它在本地运行,驱动程序版本相同,我在本地构建可执行文件并通过FTP进行部署,因此不为此应用程序使用Kudo部署。在A1正常工作之前,Azure已自动升级到v12。
服务器= [服务器名称] .database.windows.net;端口= 1433;数据库= [数据库名称];用户ID = [用户];密码= [通过]; Trusted_Connection = False;加密= True;连接超时= 30;
受信任的连接应该真实吗?还是加密错误?将尝试更改这些内容以查看…。
编辑3:我已经看过Azure门户的连接字符串,而v12似乎有这个新参数:TrustServerCertificate=False但是没有机会,没有解决问题
TrustServerCertificate=False
基于这个已解决的问题,我TrustServerCertificate从更改False为True,并将此参数添加hostNameInCertificate到连接字符串中,它现在可以正常工作:
TrustServerCertificate
False
True
hostNameInCertificate
https://github.com/denisenkom/go- mssqldb/issues/55
TrustServerCertificate=True;hostNameInCertificate=*.database.windows.net;
Azure门户建议有TrustServerCertificate=False且没有hostNameInCertificate。