net::ASP.NET Core 中的 ERR_CERT_AUTHORITY_INVALID

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

当我尝试从 SPA 请求我的 Web API 时,我在 ASP.NET Core 中收到

net::ERR_CERT_AUTHORITY_INVALID
错误。

解决此问题的第一个解决方案是从浏览器

Advanced
-
Proceed to localhost (unsafe)
访问我的 ASP.NET Core 地址,然后来自我的 SPA 的请求将起作用。但是每次我开始做我的项目时,我都必须重复这个过程。

我找到的另一个解决方案是this。简而言之,解决方案是运行命令:

dotnet dev-certs https --trust
。我在 Windows 上,所以根据链接文章
On Windows it'll get added to the certificate store
.

但是在我运行命令后,我仍然在请求中遇到

net::ERR_CERT_AUTHORITY_INVALID
问题。我能做些什么呢?

c# asp.net certificate single-page-application
5个回答
8
投票

运行命令

dotnet dev-certs https --trust
将在您的设备中创建一个自签名证书。该证书将颁发给
localhost
域。在我的例子中,在运行它之后,证书被创建但它没有被添加到“受信任的根证书颁发机构”。

certmgr.msc

要添加证书,您需要打开

certmgr.msc
win+r并运行
certmgr.msc
),然后转到“个人”证书并使用正确的到期时间。
如果在那里找不到证书,可以转到浏览器并单击不安全连接图标,然后打开无效证书并转到“详细信息”选项卡并单击“复制到文件...”,这也应该创建
.cer
证书。


接下来,转到“受信任的根证书颁发机构”并在那里导入证书。完成后,证书将在您的本地计算机上有效。您可能需要重新启动浏览器和服务。

browser certificate

按顺序做


5
投票
dotnet 开发证书 https --clean

从 AppData\Roaming\ASP.NET\https 中删除您的密钥和 pem
  1. dotnet dev-certs https --trust
  2. 使用“开始”运行 SPA 项目:“set HTTPS=true&&react-scripts start”
  3. 如果你先运行你的项目(第 4 点)。权限不受信任(由 3 完成)并导致权限无效错误

在您的应用程序中,通过 NuGet 包添加对 Microsoft.AspNetCore.Authentication.Certificate 的引用。然后在 Startup.ConfigureServices 方法中这样写:


3
投票

同时添加 app.UseAuthentication();在 Startup.Configure 方法中。否则,HttpContext.User 将不会设置为 ClaimsPrincipal

.cer

来源:

https://learn.microsoft.com/en-us/aspnet/core/security/authentication/certauth?view=aspnetcore-3.1

    

对于 Ubuntu,您需要一些额外的步骤:


0
投票
奔跑

public void ConfigureServices(IServiceCollection services) { services.AddAuthentication( CertificateAuthenticationDefaults.AuthenticationScheme) .AddCertificate(); // All other service configuration }

  1. 运行
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
       app.UseAuthentication();
    
        // All other app configuration
    }
    
    检查这个目录是否存在。
  2. 如果没有,则运行
    sudo apt-get install libnss3-tools
    创建目录。
  3. ls $HOME/.pki/nssdb
    导出证书然后
  4. mkdir $HOME/.pki/nssdb
  5. 运行命令
    dotnet dev-certs https
  6. sudo -E dotnet dev-certs https -ep /usr/local/share/ca-certificates/aspnet/https.crt --format PEM
  7. 
    
    重启浏览器
此链接

中的更多详细信息(也适用于 Ubuntu 和其他 Linux 发行版)。

我按照这些步骤操作,但它并没有阻止 Chrome 中出现的“不安全”消息。然后我尝试评论以下行 //app.UseHttpsRedirection();在 startup.cs 中的 Configure() 方法中,它解决了问题。


-1
投票

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