服务器环境是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证书;或者说代码中需要添加其他的属性?
这样试试?我这里测试时正常的
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();
}
}
}