从代码中使用HTTPS的服务器和客户端错误,但在浏览器中有效

从代码中使用HTTPS的服务器和客户端错误,但在浏览器中有效,https,asp.net-core,identityserver4,kestrel-http-server,Https,Asp.net Core,Identityserver4,Kestrel Http Server,运行新创建的IdentityServer4 Asp.Net核心服务器。它“工作”的意义是,它在没有HTTPS的情况下工作,无论是在身份验证调用中,还是在提供一些Asp.NETMVC视图时。我将其切换为在本地开发环境中使用HTTPS,并根据生成证书 从浏览器上看,它“起作用”。在Chrome的情况下,我可以按照那篇文章的建议,绕过安全警告进入web视图。但是,在.Net客户机上,我使用的是IdentityModel NuGet包,现在尝试访问元数据失败了服务器发出“无法验证HTTPS连接”IOEx

运行新创建的IdentityServer4 Asp.Net核心服务器。它“工作”的意义是,它在没有HTTPS的情况下工作,无论是在身份验证调用中,还是在提供一些Asp.NETMVC视图时。我将其切换为在本地开发环境中使用HTTPS,并根据生成证书

从浏览器上看,它“起作用”。在Chrome的情况下,我可以按照那篇文章的建议,绕过安全警告进入web视图。但是,在.Net客户机上,我使用的是IdentityModel NuGet包,现在尝试访问元数据失败了服务器发出“无法验证HTTPS连接”IOException,客户端发出“证书颁发机构无效或不正确”HttpRequestException。

我猜这是因为在浏览器中,事情是交互式的,我可以告诉它忽略警告并继续。但在代码中,特别是在使用该库时,它给了我这个异常,而不是继续。也许吧

有没有更好的方法来处理使用HTTPS和自签名证书运行IdentityServer4/AspNetCore的情况?对于我没有看到的DiscoveryClient,有什么可以做的吗

与此类似,但重新生成证书在这种情况下没有帮助。我想知道从IdentityServer/DiscoveryClient角度看是否还有其他原因或见解。

最可能的错误“证书颁发机构无效或不正确”是因为客户端无法信任服务器的证书。您可以将创建的证书安装到计算机中的根证书颁发机构(客户端正在运行的位置)

  • 启动MMC(MMC.exe),为计算机帐户添加证书管理单元,并管理本地计算机的证书
  • 选择文件>添加/删除管理单元
  • 单击证书管理单元,然后单击添加
  • 在“证书”管理单元显示中,选择“计算机帐户”,然后单击“下一步”
  • 选择本地计算机,单击完成,然后单击确定
  • 在左侧导航窗格中,展开证书(本地计算机)
  • 右键单击受信任的根证书颁发机构,然后选择所有任务>导入
  • 此时将打开证书导入向导。 10.单击“下一步”。 11.浏览您创建的证书并单击“下一步”
  • 选择“将所有证书放入以下存储:受信任的根证书颁发机构”,然后单击“下一步”,然后单击“完成”
  • 如果您在iisexpress上运行,它将在您的凭据下运行。因此,您必须在步骤4中将其添加到用户存储。如果您在IIS下运行,则必须将证书添加到计算机。您还可以导入到这两个存储

    同时选择用户存储和计算机存储

    添加两个卡扣后

    导入证书

    错误“证书颁发机构无效或不正确”很可能是因为客户端无法信任服务器的证书。您可以将创建的证书安装到计算机(客户端正在运行的计算机)的根证书颁发机构

  • 启动MMC(MMC.exe),为计算机帐户添加证书管理单元,并管理本地计算机的证书
  • 选择文件>添加/删除管理单元
  • 单击证书管理单元,然后单击添加
  • 在“证书”管理单元显示中,选择“计算机帐户”,然后单击“下一步”
  • 选择本地计算机,单击完成,然后单击确定
  • 在左侧导航窗格中,展开证书(本地计算机)
  • 右键单击受信任的根证书颁发机构,然后选择所有任务>导入
  • 此时将打开证书导入向导。 10.单击“下一步”。 11.浏览您创建的证书并单击“下一步”
  • 选择“将所有证书放入以下存储:受信任的根证书颁发机构”,然后单击“下一步”,然后单击“完成”
  • 如果您在iisexpress上运行,它将在您的凭据下运行。因此,您必须在步骤4中将其添加到用户存储。如果您在IIS下运行,则必须将证书添加到计算机。您还可以导入到这两个存储

    同时选择用户存储和计算机存储

    添加两个卡扣后

    导入证书

    非常感谢ROHITH。非常详细的回答!我转到了“下一个问题”,与主机名不匹配有关,但我想答案可以在这里找到:。非常感谢ROHITH。非常详细的回答!我转到了“下一个问题”,与主机名不匹配有关,但我认为答案可以在这里找到:。