我从今天早上收到此错误,新的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.