我从今天早上开始收到这个错误,新的v12更新了服务器/AAzure SQL数据库:
TLS握手失败:x509:证书对有效tr12.northcentralus1-a.worker.database.windows.net,*.tr12.northcentralus1-a.worker.database.windows.net,而不是[服务器名称].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部署这个应用程序。在Azure自动升级到v12之前一直在A1工作。
服务器=[服务器名称].database.windows.net;端口=1433;数据库=[dbname];使用者ID=[用户];密码=[通行证];Trusted_Connection=False;Encrypt=True;联系超时=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
。