从Azure网站连接VM角色中的数据库时,“证书链由不受信任的权限颁发”

问题描述 投票:132回答:7

从Azure网站连接虚拟机角色(我有SQL VM角色)的MY DB时遇到错误。 VM Role和Azure Website都位于West区域。我正面临以下问题:

SqlException(0x80131904):已成功与服务器建立连接,但在登录过程中发生错误。 (提供者:SSL提供者,错误:0 - 证书链由不受信任的机构颁发。)]

我可以使用SSMS连接到我的数据库。我的VM角色打开了1433端口。我的连接有什么问题?

azure-web-roles azure-vm-role
7个回答
312
投票

您可能没有在SQL VM的受信任根存储中安装CA签名证书。

如果连接字符串中有Encrypt=True,则将其设置为off(不推荐),或在连接字符串中添加以下内容:

TrustServerCertificate=True

如果您没有安装一个自签名证书,SQL Server将创建一个自签名证书,但它不会被调用者信任,因为它不是CA签名的,除非您告诉连接字符串信任任何服务器证书默认。

从长远来看,我建议利用Let's Encrypt免费从已知的可信CA获取CA签名证书,并将其安装在VM上。不要忘记将其设置为自动刷新。您可以在“SQL加密层次结构”主题和“使用无验证加密”主题的SQL Server书籍中阅读有关此主题的更多信息。


43
投票

If you're using SQL Management Studio, please goto connection properties and click on "Trust server certificated"如果您正在使用SQL Management Studio,请转到连接属性并单击“Trust server certificated”


29
投票

如果在尝试使用SSMS进行连接时看到此错误消息,请将TrustServerCertificate=True添加到其他连接参数。


4
投票

如果您尝试通过Visual Studio 2015中的数据连接访问它,并获得上述错误,则转到高级并设置TrustServerCertificate=True以使错误消失。


0
投票

从ssms客户端本身也可以实现同样的目的。只需打开ssms,插入服务器名称,然后从标题连接属性下的选项中确保选中信任服务器证书。


0
投票

我通过SSMS将Excel数据导入SQL数据库时遇到此问题。解决方案是在安全部分设置qazxsw poi


0
投票

我试图运行探查器时遇到此错误,即使我的连接已检查信任服务器证书并且我在高级部分添加了TrustServerCertificate = True。我改为以管理员身份运行的SSMS实例,并且启动器没有问题。 (我之前发现,当我连接本地连接需要很长时间才能连接时,以管理员身份运行帮助)。

© www.soinside.com 2019 - 2024. All rights reserved.