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

时间:2013-07-12 12:46:32

标签: azure-web-roles azure-vm-role

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

  

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

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

8 个答案:

答案 0 :(得分:281)

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

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

TrustServerCertificate=True

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

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

HTH

答案 1 :(得分:28)

如果您在尝试使用SQL Management Studio进行连接时看到此错误消息,请添加     TrustServerCertificate =附加连接参数的True。

答案 2 :(得分:28)

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

答案 3 :(得分:4)

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

答案 4 :(得分:1)

从IIS访问SQLServer时遇到相同问题。添加TrustServerCertificate = True没有帮助。

在MS文档中可能会看到评论:确保SQLServer服务帐户有权访问您正在使用的TLS证书。 (NT服务\ MSSQLSERVER)

打开个人商店,然后右键单击证书->管理私钥->添加SQL服务帐户并提供完全控制权。

重新启动SQL服务。有效。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

如果它对其他人有帮助,即使我的连接已选中“信任服务器”证书,并且在“高级”部分中添加了TrustServerCertificate = True,我也会在尝试运行事件探查器时遇到此错误。我更改为以管理员身份运行的SSMS实例,并且探查器启动时没有问题。 (我以前发现,即使我与本地的连接都花了很长时间才能连接,在管理员的帮助下运行)。

答案 7 :(得分:0)

在通过SSMS将Excel数据导入SQLDatabase时遇到此问题。解决方案是,在安全性部分中选择 TrustServerCertificate = True