【问题标题】:Bypass SSL validation in ASP.NET core in Linux在 Linux 中绕过 ASP.NET 核心中的 SSL 验证
【发布时间】:2017-06-14 12:17:33
【问题描述】:

我们的客户有一个使用自签名证书运行的 Cloud Foundry 的本地托管。我们正在 ASP.NET Core 中为他开发微服务。在此期间,我们需要使用 HttpClient 进行未加密的 HTTP 调用。

  • 有什么方法可以绕过 SSL 客户端中的 SSL 验证检查 Ubuntu(我知道它可以在 Windows 上完成)?

我知道以前有一些答案,但没有提供任何解决方案。因此,请不要将此问题标记为重复

【问题讨论】:

  • 您的意思是您需要将该自签名证书添加到客户端计算机 (ubuntu) 中的受信任根证书中吗?
  • 不,我只想跳过服务器证书的验证。有winHttpHandler。 Linux 机器的等价物是什么

标签: asp.net-core .net-core ubuntu-16.04 kestrel-http-server


【解决方案1】:

您可以像这样使用 HttpClientHandler 的证书验证回调:

static void Main(string[] args)
{
    using (var handler = new HttpClientHandler())
    using (var client = new HttpClient(handler))
    {
        handler.ServerCertificateCustomValidationCallback += (message, xcert, chain, errors) => true;

        var result =  client.GetStringAsync("https://self-signed.badssl.com/").Result;
        Console.WriteLine(result.Substring(0, 100));
    }
}

在 Windows 上的 Ubuntu 上使用 Bash 测试

【讨论】:

    【解决方案2】:

    【讨论】:

      【解决方案3】:

      在 System.Net.Http HttpClientHandler 上自定义 handler.ServerCertificateCustomValidationCallback 可以解决问题。

      【讨论】:

        猜你喜欢
        • 2016-11-03
        • 1970-01-01
        • 2017-08-29
        • 1970-01-01
        • 2022-11-10
        • 2017-05-13
        • 2019-09-08
        • 1970-01-01
        相关资源
        最近更新 更多