当前位置:   article > 正文

C#-.Net 爬虫request.GetResponse()报错:基础连接已经关闭- 未能为 SSL-TLS 安全通道建立信任关系-根据验证过程,远程证书无效_根据验证过程,远程证书无效。 在 pcl.modnet.netfile.thread(netthre

根据验证过程,远程证书无效。 在 pcl.modnet.netfile.thread(netthread info)

PS:C#/.Net 爬虫request.GetResponse()报错:基础连接已经关闭: 未能为 SSL/TLS

安全通道建立信任关系/根据验证过程,远程证书无效【最下方是完整代码】

首先,先放置一张报错的图片:

在这里插入图片描述
原因: 网站的证书应该是失效了,并且我发起的请求是基于Https的,所以被系统认定为不安全的连接。并且通过微软官方文档的解释如下:
在这里插入图片描述

解决方案:

1.需要使用 ServicePointManager.SecurityProtoco 属性,这个属性的解释如下,详细可以看官方文档:
在这里插入图片描述
使用的方式就是在发起Request请求之前给这个属性设置值:

 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;
  • 1

枚举的类型是:
在这里插入图片描述

2.如果设置完这个属性还是有问题,就要考虑你的客户端与服务器之间是双向认证还是单向认证,默认大多数的网站都是单向认证。(不明白单向认证或者双向认证的同志可以搜索相关博文了解,这里不作阐述)。解决这个的方式是使用
ServicePointManager.ServerCertificateValidationCallback
这个委托。这个委托主要是用来身份验证的。
在这里插入图片描述
在这里插入图片描述
解决方案: 实现这个委托,强制返回True

 public bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
        {
            return true;
        }
  • 1
  • 2
  • 3
  • 4

详细的代码如下:
在这里插入图片描述

学习网络安全技术的方法无非三种:

第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。

第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/191748
推荐阅读
相关标签