无论 .NET Core HttpClient 中的有效性如何,如何允许所有 https?

Hel*_*rld 7 c# ssl ssl-certificate .net-core asp.net-core

我正在 .NET Core 中创建一个 Web API。为了在本地调试它,我创建了一个连接到我的 API 的控制台应用程序。我正在 Linux 中调试。

https://localhost:5001/连接到我的本地 URL 时,我的控制台应用程序抛出 AuthenticationException (根据验证程序,远程证书无效)。

我试图通过两种方式规避这一点:

  1. 添加了ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;但是没有效果。

  2. 我已经跑了dotnet dev-certs https --trust。现在我的网络浏览器不再抱怨了,这很好,但我的控制台应用程序仍然抛出异常。试过重启。

如何让 .NET Core 信任我的本地主机服务器?还是忽略证书有效性?

Bas*_*mal 15

这里使用下面的示例

var httpClientHandler = new HttpClientHandler();
// Return `true` to allow certificates that are untrusted/invalid
httpClientHandler.ServerCertificateCustomValidationCallback = 
    HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
var httpClient = new HttpClient(httpClientHandler);
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法在全球范围内做到这一点?对于您无法控制客户行为的情况。即,openidconnect 反向通道调用,在无法进行自定义的情况下触发 https 请求。 (2认同)