在 .NET Core 2.2 中使用 SocketsHttpHandler 并忽略证书验证

djs*_*ric 1 c# certificate httpclient .net-core httpclienthandler

使用HttpClientHandler,我们可以设置服务器验证回调并返回 true(通过写出或使用DangerousAcceptAnyServerCertificateValidator)。在升级到 .NET Core 2.2 后切换HttpClient到使用时,如何确保也绕过此验证SocketsHttpHandler?这是默认值吗?我目前找不到关于此主题的太多信息,我将部署到我希望避免进行重大更改的环境中。

小智 6

@djsoteric 我有同样的问题,这样解决了

public static HttpClient CreateHttpClient()
{
    var sslOptions = new SslClientAuthenticationOptions
    {
        // Leave certs unvalidated for debugging
        RemoteCertificateValidationCallback = delegate { return true; },
    };

    var handler = new SocketsHttpHandler()
    {
        SslOptions = sslOptions,
    };

    return new HttpClient(handler);
}
Run Code Online (Sandbox Code Playgroud)