“证书链是由不受信任的机构颁发的。”没有解释就发生

问题描述 投票:0回答:1

我有四个相同的环境,其中包含运行 IIS 和 Microsoft SQL Server 2019 的 Windows Server 2019 服务器。IIS 服务器上的 ASP.NET 4.7.2 应用程序通过各种方式(实体框架、ADO.NET)定期访问 SQL 服务器上的数据库。我们将这些环境称为 DEV、UAT、STAGE 和 PROD。没有任何 SQL 服务器被配置为对 SQL SERVER 进程使用 SSL 证书,并且每个 IIS 服务器都已由我们自己的 CA 颁发了证书。

仅在我们的 DEV 环境中,ADO.NET 连接就经常出现问题,我们收到带有错误消息的异常:

证书链是由不受信任的机构颁发的。

执行 SQLCommand 时。同一 IIS 服务器上使用实体框架访问同一 SQL 服务器的另一个应用程序不受影响。 SQL Server Management Studio 也不受影响。

我在客户端应用程序中尝试了各种建议的解决方案,但没有成功:

  • 使用
    TrustServerCertificate=true
  • 更新连接字符串
  • 使用
    Encrypt=false
  • 更新连接字符串
  • System.Data.SqlClient
    更新为
    Microsoft.Data.SqlClient

我无法辨别我们的环境之间任何有意义的配置差异。

我应该检查是否有任何可能的 IIS 或 SQL Server 配置问题可以解决此问题?

.net sql-server iis connection-string
1个回答
0
投票

如果您仅在 SQL 命令上收到此错误;

  • 在运行 SQL 命令的计算机及其尝试连接的 IIS 和 SQL Server 上启用 CAPI2 事件日志。

  • 在运行 SQL 命令的计算机以及它尝试连接的 IIS 和 SQL Server 上启用 Schannel 日志记录(您可以设置 7 = 记录注册表中的所有信息值)

参考:“https://learn.microsoft.com/en-us/troubleshoot/developer/webapps/iis/health-diagnostic-performance/enable-schannel-event-logging”

  • 运行 SQL 命令,检查运行命令的计算机和服务器上的 CAPI2 日志和 schannel 日志(应存在于系统日志中)。

您可能会在 CAPI2 和 Schannel 日志中找到必要的进程 ID 和证书信任问题的详细信息,以及有问题的证书的详细信息。找到证书后,立即找到从中检索证书的服务器。在具有此证书的服务器上,解决有关过期、无效、撤销条件的任何问题,然后确保运行 sql 命令的客户端 PC(也可能在 IIS 服务器上,具体取决于在您的申请上)

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