【问题标题】:Using SocketsHttpHandler in .NET Core 2.2 and ignoring cert validation在 .NET Core 2.2 中使用 SocketsHttpHandler 并忽略证书验证
【发布时间】:2020-04-01 13:12:26
【问题描述】:

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

【问题讨论】:

  • 我相信在 SocketsHttpHandler.SslOptions.RemoteCertificateValidationCallback 下可以使用相同的选项
  • 我相信你是对的。一旦我在几天内部署到生产环境(仅在我遇到此问题的环境),我可以让您知道这是否以相同的方式工作。您可以现在将其添加为答案,还是等我验证完毕?

标签: c# .net-core certificate httpclient httpclienthandler


【解决方案1】:

@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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-31
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    • 2011-11-16
    • 2013-10-16
    • 2012-08-30
    相关资源
    最近更新 更多