加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

https – 如何在非Windows平台上忽略“System.Net.Http.CurlExce

发布时间:2020-12-13 21:26:55 所属栏目:Windows 来源:网络整理
导读:我在Microsoft Azure中部署了Kubernetes集群,并希望使用https从.Net Core c#程序调用一些REST API.部署群集时使用的证书不在受信任的CA中.当我在Mac上运行此程序时,我收到以下错误:“System.Net.Http.CurlException:对等证书无法使用给定的CA证书进行身份
我在Microsoft Azure中部署了Kubernetes集群,并希望使用https从.Net Core c#程序调用一些REST API.部署群集时使用的证书不在受信任的CA中.当我在Mac上运行此程序时,我收到以下错误:“System.Net.Http.CurlException:对等证书无法使用给定的CA证书进行身份验证”

在Windows上,我可以设置自定义ServerCertificateValidationCallback以忽略错误:

WinHttpHandler winHttpHandler = new WinHttpHandler();
    winHttpHandler.ServerCertificateValidationCallback = ValidateServerCertificate;

public static bool ValidateServerCertificate(
    HttpRequestMessage request,X509Certificate certificate,X509Chain chain,SslPolicyErrors sslPolicyErrors)
{
    return true;
}

但是,在非Windows平台上的.Net Core下不支持此功能.

如何忽略其他平台上的错误?

您可以使用.NET Core执行此操作.我们一直在使用1.1,2.0和2.1.

这可以通过构造HttpHandler并将其传递给HttpClient构造函数来完成. HttpHandler有一个ServerCertificateCustomValidationCallback,您可以覆盖它以执行自定义证书验证.

样品:

private HttpClient SampleBuildHttpClient()
{
    return new HttpClient(
        new HttpClientHandler
        {
            ServerCertificateCustomValidationCallback = MyCallback,}); 
}

private bool MyCallback(HttpRequestMessage reqMsg,X509Certificate2 cert,X509Chain certChain,SslPolicyErrors policyErrors)
{
    //custom validation
    return true;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读