AuthenticationException:由于证书链中的错误,远程证书无效:UntrustedRoot

我正在执行一项任务,以使用本地 WebAPI 服务从本地 ToDo WebApp 对 Azure 中的 Active-directory B2C 实例进行身份验证。

除了在 Azure 的试用版订阅中添加 B2C 实例之外,我还创建了 2 个应用程序 App1 和 App2。在本地 Windows 10 操作系统中,在 Visual-Studio 中,我根据 Microsoft 博客 here 收集了 ToDo Webapp 和 WebAPI 服务的代码

但是,当我启动 WebAPI 服务并运行 ToDoWebapp 时,创建用户后的登录工作正常,但之后,对于对该服务的任何调用,我都会收到带有消息的错误页面:AuthenticationException:远程证书是由于证书链中的错误而无效:UntrustedRoot

HttpRequestException:无法建立 SSL 连接,请参阅内部异常。

如何解决这个错误?

stack overflow AuthenticationException: The remote certificate is invalid because of errors in the certificate chain: UntrustedRoot
原文答案
author avatar

接受的答案

请检查以下几点:

  1. 安装 .NET Core SDK 将 ASP.NET Core HTTPS 开发证书安装到本地用户证书存储,作为首次运行体验的一部分,但它不受信任。要信任证书,请执行一次性步骤以运行 dotnet dev-certs 工具。
    2.检查证书存储中的证书。在 Current User > Personal > CertificatesCurrent User > Trusted root certification authorities > Certificates 下找到带有ASP.NET Core HTTPS开发证书的localhost证书
  2. 仔细检查个人和受信任的根证书颁发机构,尝试删除所有找到的证书。

注意:不要删除 IIS Express localhost 证书。

尝试在 .NET CLI 中运行以下命令,然后重试

dotnet dev-certs https --clean
dotnet dev-certs https --trust

注意: 不受信任的证书只能在应用程序开发期间使用。生产应用程序应始终使用有效证书。

参考:

  1. Trust the ASP.NET Core HTTPS development certificate on Windows and macOS
  2. Enforce HTTPS in ASP.NET Core | Microsoft Docs

答案: