Azure连接字符串错误

时间:2018-02-02 11:17:57

标签: c# azure connection-string

尝试使用我们公司的crm从我的本地计算机连接到我的azure实例时出现了一个奇怪的错误。 Crm可以使用静态库方法。

与服务器成功建立连接,但在登录前握手期间发生错误。 (提供者:SSL提供者,错误:0 - 参数不正确。)

这是我的连接字符串

    Server=MyAzureServer;Database=MyDatabase;Persist Security 
    Info=False;UserID=User;Password=Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=false;

我知道它与TrustServerCertificate属性有关,因为如果我将其设置为true它可以工作,但这是一个安全风险所以不想这样做。正如我所说,它可以在其他机器上运行,但不是我的。

  • 如果我创建一个新的控制台应用程序并将此连接字符串与静态库一起使用,它可以正常工作;
  • 如果我使用公司CRM连接则失败

我最近安装了.NET核心,所以不确定这与它有什么关系吗?

感谢任何帮助

由于

1 个答案:

答案 0 :(得分:2)

调用数据库的计算机没有安装CA Root或叶证书,并且无法在握手中验证Azure SQL提供的TLS证书。

在您的情况下,CRM服务器将缺少证书。

我假设您正在谈论Azure SQL,因此root和leaf是在TLS握手中返回的内容

https://{your-database-name}.database.windows.net

在我的情况下 Baltimore CyberTrust Root Microsoft IT SSL SHA2 。我没有添加指纹,因为证书的有效期有限,未来的google可能会被抛弃。

在Chrome中打开开发工具→安全性→查看证书以检查链。

Certificate chain