尝试使用我们公司的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它可以工作,但这是一个安全风险所以不想这样做。正如我所说,它可以在其他机器上运行,但不是我的。
我最近安装了.NET核心,所以不确定这与它有什么关系吗?
感谢任何帮助
由于
答案 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中打开开发工具→安全性→查看证书以检查链。