无法请求服务器,因为 ssl 无效或过期 - 如何忽略?

-2 c# ssl-certificate

我正在尝试向服务器发出请求,但是我的服务器是使用自定义 ssl 设置的,openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes但是如何设置为类似于 python 的错误验证 sslrequests.get(url,verify=false)

客户

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
    using (Stream stream = response.GetResponseStream())
    {
        using (StreamReader reader = new StreamReader(stream))
        {
            html = reader.ReadToEnd();
            Console.WriteLine(html);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 6

您可以将以下内容添加到您的代码中:

request.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
Run Code Online (Sandbox Code Playgroud)

所以最终结果是:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

request.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                using (Stream stream = response.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        html = reader.ReadToEnd();
                        Console.WriteLine(html);
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)