当前位置: 首页 > 面试题库 >

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

漆雕稳
2023-03-14
问题内容

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


问题答案:

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

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

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

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



 类似资料:
  • 我正在go中运行https web服务器。我正在使用angular web应用程序(Chrome浏览器)对其进行测试,该应用程序可以对web服务器进行ajax调用。 如果我不断地点击网络服务器,一切似乎都正常。但每当我让它闲置一段时间并点击web服务器时,来自浏览器的ajax调用都不会得到响应。我几乎总是在服务器日志中看到此日志行。 我可以确认IP地址是我的IP地址。 我像这样启动我的https服

  • 我需要与外部服务连接,而且我的客户端身份验证有问题。该服务需要证书、用户名和密码以及请求。 我正在使用Windows Server 2008 R2。 我已经收到带有证书的PKCS#7包并导入: 本地计算机/个人的SSL证书(仅含公钥) 中间CA和根CA到本地计算机/受信任的RootCertificationAuthorities 我已经在Windows注册表中启用了TLS 1.0、1.1、1.2客

  • 我们很难与远程机器(如PayPal vb)建立https连接谁从我们的系统中禁用了SSL3协议。Net应用程序。HttpWebRequest实例的GetResponse方法出现以下异常。 请求被中止:无法创建SSL/TLS安全通道。 当我们使用WireShark深入并跟踪网络日志时,我们看到远程机器返回以下错误 TLSv1。2警报(级别:致命,描述:握手失败)握手失败40 更有趣的情况是,当我尝试

  • 问题内容: 我今天从Java 1.6升级到Java 1.7。从那时起,当我尝试通过SSL建立到我的Web服务器的连接时发生错误: 这是代码: 这只是一个测试项目,这就是为什么我允许和使用不可信证书的原因: 我成功尝试连接到https://google.com。我的错在哪里? 谢谢。 问题答案: Java 7引入了默认情况下启用的SNI支持。我发现某些配置错误的服务器会在SSL握手中发送“无法识别的

  • 我试图使用一个自签名证书来配置Linphone Android中的TLS,以便能够与FreeSWITCH SIP服务器通信。但是SSL握手失败,出现以下错误: 通道[0x9EC3C000]:SSL握手失败:X509-证书验证失败,例如CRL、CA或签名检查失败,无法连接到[TLS://52.3.207.224:5061] 谁能建议如何调试这个问题?或者如何在Linphone Android中配置自

  • 在JDK 11下使用TLS 1.3原则上是可行的。然而,一旦在两个并发线程中建立连接,两个线程的初始握手都会失败。 这显然是一个已知的问题,应该已经解决了: Oracle JDK 11.0.2 OpenJDK 11.0.3 使用OpenJDK,这应该是固定的: 或者甚至是OpenJDK(这是今天在AdoptOpenJDK. net上可用的最新选项): 这是正式修复的,但我似乎无法让它工作。 这是怎