C#-.Net 爬虫request.GetResponse()报错:基础毗连已经关闭- 未能为 SSL-TL ...

守听  金牌会员 | 2024-6-15 02:23:28 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 877|帖子 877|积分 2631

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

安全通道创建信任关系/根据验证过程,远程证书无效【最下方是完整代码】
首先,先放置一张报错的图片:


原因: 网站的证书应该是失效了,并且我发起的请求是基于Https的,所以被体系认定为不安全的毗连。并且通过微软官方文档的解释如下:

解决方案:

1.必要使用 ServicePointManager.SecurityProtoco 属性,这个属性的解释如下,详细可以看官方文档:

使用的方式就是在发起Request请求之前给这个属性设置值:
  1. ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;
复制代码
枚举的范例是:

2.如果设置完这个属性还是有题目,就要考虑你的客户端与服务器之间是双向认证还是单向认证,默认大多数的网站都是单向认证。(不明白单向认证或者双向认证的同道可以搜索相干博文相识,这里不作阐述)。解决这个的方式是使用
ServicePointManager.ServerCertificateValidationCallback
这个委托。这个委托主要是用来身份验证的。


解决方案: 实现这个委托,强制返回True
  1. public bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
  2.         {
  3.             return true;
  4.         }
复制代码
详细的代码如下:

学习网络安全技能的方法无非三种:
第一种是报网络安全专业,如今叫网络空间安全专业,主要专业课程:步伐设计、计算机构成原理原理、数据结构、操作体系原理、数据库体系、 计算机网络、人工智能、天然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技能,信息检索、舆情分析等。
第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,轻易劝退。
如果你对网络安全入门感兴趣,那么你必要的话可以点击这里

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

守听

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表