dotnet dev-certs 证书不受信任

ROB*_*SON 5 .net https asp.net-core

我正在阅读 Adam Freeman 的书“Pro ASP.Net Core 3”。我已经了解了 https 的介绍。他指示我们使用 Powershell 并运行命令“dotnet dev-certs https --clean”,然后运行“dotnet dev-certs https --trust”。当我运行 clean 命令时,我收到一条消息“HTTPS 开发证书已成功从机器中删除”。但是当我运行 trust 命令时,我得到:

“未找到具有可跨安全分区访问的密钥的有效 HTTPS 证书。将运行以下命令来修复它:'sudo security set-key-partition-list -D localhost -S unsigned:,teamid:UBF8T346G9' 此命令将使证书密钥可跨安全分区访问,并可能提示您输入密码。有关详细信息,请参阅: https //aka.ms/aspnetcore/2.1/troubleshootcertissues 未找到具有跨安全分区可访问密钥的有效 HTTPS 证书。将运行以下命令来修复它:'sudo security set-key-partition-list -D localhost -S unsigned:,teamid:UBF8T346G9' 此命令将使证书密钥跨安全分区访问,并可能提示您输入密码。对于更多信息见:https://aka.ms/aspnetcore/3.1/troubleshootcertissues 请求信任 HTTPS 开发证书。如果以前不信任该证书,则会显示确认提示。在提示上单击“是”以信任证书。信任 HTTPS 开发人员证书时出错。”

如果我只是尝试运行“dotnet dev-certs https”,我会得到“一个有效的 HTTPS 证书已经存在”。

我尝试以管理员身份运行 powershell,但我遇到了同样的错误。

这本书说我可能会得到几个对话框,但我没有得到它们。

dotnet --version 给了我 3.1.200。

我需要做什么才能使证书生效?

gra*_*der 37

好的...我在下面的 github 链接中找到了 MAC 超级提示。

(它〜可能会转化为PC端......但我无法测试)

https://github.com/dotnet/sdk/issues/10422

在 macOS 上遇到了同样的问题。作为解决方案,在钥匙串中,删除“系统”下的旧本地主机证书,然后通过文档中描述的 dotnet 命令重新创建它。它将被放置在“登录”下。

因此,为了更好地描述上面的引用,我在这里添加了一个屏幕截图(下图带有洋红色/紫红色/粉红色圆圈),以提供“这是它在 Mac 上的位置”......上面的文字描述了..

所以我的步骤是:

dotnet dev-certs https --clean

dotnet dev-certs https --check

// (DO THE MANUAL keychain-old-localhost removal NOW (image below) 
// (before running the below terminal commands)

dotnet dev-certs https --check

dotnet dev-certs https 

dotnet dev-certs https --trust
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Fei*_*Han 8

我需要做什么才能获得工作证书?

dotnet dev-certs https --trust由于某种原因,当我们使用命令信任 HTTPS 开发证书时,dotnet CLI 可能会抛出异常。

作为解决方法,我们可以尝试执行以下步骤来手动信任证书。

  1. 运行dotnet dev-certs https命令生成HTTPS证书(如果没有生成)

  2. 通过从证书管理器 UI 中的“当前用户”>“个人”>“证书”复制到“当前用户”>“受信任的根证书颁发机构”>“证书” ,复制具有ASP.NET Core HTTPS 开发证书友好名称的证书,如下所示。

    在此输入图像描述

  • 对我来说,这有效 1) 使用 `certmgr.msc` 备份 `Personal` 下的所有 `localhost` 证书,然后将其删除 2) `dotnet dev-certs https` 导致 `有效的 HTTPS 证书,其密钥可跨安全分区访问未找到...` 3) 我将仍然有效的“ASP.NET Core HTTPS 开发证书”从 **当前用户 > 受信任的根证书颁发机构 > 证书** 复制到 **当前用户 > 个人 > 证书** 这在至少“dotnet run”有效 (2认同)

Abd*_*lah 5

下面的命令对我有用

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

在此输入图像描述