Visual Studio 2017提供"将证书添加到受信任的根证书存储失败,并显示以下错误"

san*_*eev 25 ssl ssl-certificate visual-studio iis-express

我试图在SSL模式设置为true的情况下运行ASP MVC应用程序,每当我运行应用程序时,我都会立即信任IIS Express SSL证书.单击是后,它会显示错误消息'将证书添加到受信任的根证书存储失败,并显示以下错误.访问被拒绝'.我以管理员模式运行Visual Studio 2017.我还通过访问MMC删除了localhost证书.有没有其他人遇到过这个问题.

错误截图

SOLN:这对我有用.删除所有localhost证书.在添加/删除程序中运行修复IIS Express.将localhost证书从个人/证书复制并粘贴到受信任的根证书,它不再抱怨.

小智 19

在终端中运行:

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

这会让您知道您是否有任何有效的自签名证书。

然后您可以运行:

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

这会让您知道您是否有任何可信的自签名证书。

如果您的开发证书已过期或不受信任,您可以运行:

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

这将删除证书。

如果您想添加证书/受信任的证书,您可以运行

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

这将创建一个自签名证书并尝试将其添加到“受信任的根证书颁发机构”文件夹中。

如果失败,您将需要手动将证书添加到“受信任的根证书颁发机构”文件夹中。

手动添加证书

  1. 第一步是在窗口“运行”上的“在此处键入搜索”部分中键入,打开运行后键入“mmc”并单击“确定”。这将拉出控制台根目录。

  2. 然后,您必须单击:文件 -> 添加/删除管理单元 -> 证书 -> 添加,然后单击确定。这将带您进入当前用户的证书

  3. 展开个人文件夹,然后单击证书文件夹。滚动直到找到名为“localhost”的证书

现在,您可以将 localhost 文件复制并粘贴到受信任的根文件夹中。如果有效,那么你就完成了!您可以通过运行以下命令来验证它是否有效:

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

如果这不起作用并且您仍然拥有不受信任的证书,那么您将必须按照以下步骤操作。

  1. 右键单击本地主机证书,然后单击“所有任务”,然后单击“导出...”我们需要先导出证书,然后才能将其导入到信任根文件夹

  2. 按照证书导出向导操作。您不必更改默认值,因此只需继续单击“下一步”,直到到达“要导出的文件”屏幕。单击浏览并选择您的桌面作为目标并将文件命名为“localhost”。单击下一步,然后完成。这将在您的桌面上创建一个名为 localhost.cer 的文件

  3. 现在双击桌面上的 localhost.cer 文件。应出现一个弹出窗口,单击“安装证书...”按钮

  4. 确保将存储位置设置为“本地计算机”,然后单击下一步。

  5. 然后选择“将所有证书放入以下存储”,单击浏览,然后选择“受信任的根证书颁发机构”并单击完成

最后一步是确保证书现在受信任,因此在终端运行:

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

您应该收到一条响应:已找到受信任的证书。这意味着您可以出发了!

您不再需要桌面上的证书,因此可以删除该文件。


Chr*_*att 15

注意:从问题中添加OP的解决方案作为答案.

这对我有用.删除所有localhost证书.在添加/删除程序中运行修复IIS Express.将localhost证书从个人/证书复制并粘贴到受信任的根证书,它不再抱怨.


小智 9

它对我有用,只是运行CMD> certlm并删除个人文件夹中的localhost证书。

  • 这就是让我作为一名 MS 开发人员感到尴尬的事情 (6认同)

wos*_*osi 6

在与这个问题斗争了一个星期后(使用 Win 10 和 Visual Studio 2019 社区版 16.1.1 版)并尝试了各种解决方案,我发现了以下内容:

  • 默认情况下,IISExpress 10 的 localhost 证书安装在:证书(本地计算机)-> 个人

在此处输入图片说明

  • 修复 IISExpress 10(程序 -> 程序和功能)将在以下位置创建一个新的 localhost 证书:证书(本地计算机)-> 个人

  • 然后通过使用以下命令将其保存到文件来导出该证书:

在此处输入图片说明

然后将该证书导入:Certificates (Local Computer) -> Trusted Root Certification Authorities

在此处输入图片说明

  • 然后正如user2988031指出的那样:从 Certificates (Local Computer) -> Personal 中删除证书

我还尝试使用“dotnet dev-crts https --trust”,但这对我不起作用并且总是产生以下错误:

在此处输入图片说明

所以总结一下:确保只有 1 个 localhost 证书位于 Certificates (Local Computer) -> Trusted Root Certification Authorities

更新:我刚刚意识到在修改 Web 应用程序几次后出现了一个不同的错误,我必须再次完成整个过程才能使其正常工作!


Ali*_*mon 5

这是我第一次回答。我已经使用这种方法解决了这个问题。

  1. 在开始菜单类型证书中,您将看到选项(管理计算机证书)而不是(管理用户证书)查看图像
  2. 之后转到个人 - >证书并找到本地主机

  3. 将本地主机拖到受信任的根证书颁发机构 -> 证书

  4. 现在结构列表问题已解决,因为首先它不允许导入用户证书。

  5. 因此,现在再次启动类型证书,而不是管理计算机证书,而是转到管理员用户证书,然后从个人到受信任的根证书颁发机构 -> 证书文件夹执行相同的拖放操作。

注意:如果您已从个人中删除 localhost,则只需通过首先在 chrome 上打开 Visual Studio 项目来导入它,您将在地址栏左侧看到证书详细信息并导出该证书并将该证书导入到个人 -> 证书文件夹