a1355285117 2021-09-01 11:49 采纳率: 0%
浏览 194

c# HttpClient 无法信任SSL证书的问题

服务器环境是Windows server 2008 .net版本为4.5
我需要用一个控制台程序在一个只有内网的服务器上访问一个https的网站

代码如下

var handler = new WebRequestHandler();
handler.ServerCertificateValidationCallback = delegate { Console.WriteLine("设置信任证书"); return true; };
var httpClient = new HttpClient(handler);
httpClient.BaseAddress = new Uri("https://www.baidu.com");
var response = await httpClient.GetAsync("https://www.baidu.com");

但是在get的时候依旧会报出The request was aborted: Could not create SSL/TLS secure channel的错误

控制台也没有打印出 "设置信任证书" 说明get请求的时候并没有进入这个委托当中

ServicePointManager.ServerCertificateValidationCallback = delegate { Console.WriteLine("设置信任证书"); return true; };

这个设置也没效果
我想请问服务器中是否有相关的设置?如完全禁止使用网络验证SSL证书;或者说代码中需要添加其他的属性?

  • 写回答

1条回答 默认 最新

  • CSDN专家-showbo 2021-09-01 13:46
    关注

    这样试试?我这里测试时正常的

    img

    
    using System;
    using System.IO;
    using System.Net;
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                ServicePointManager.ServerCertificateValidationCallback = delegate { Console.WriteLine("设置信任证书"); return true; };
          
                var req = (HttpWebRequest)HttpWebRequest.Create("https://www.baidu.com/");
                var resp = (HttpWebResponse)req.GetResponse();
                var s = new StreamReader(resp.GetResponseStream()).ReadToEnd();
                Console.WriteLine(s);
               
                Console.ReadKey();
            }
        }
    }
    
    
    评论

报告相同问题?

问题事件

  • 修改了问题 9月1日
  • 创建了问题 9月1日