ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] 错误处理

这篇具有很好参考价值的文章主要介绍了ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] 错误处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

从python3.9.5升级到3.11.1 原来用poplib收取邮件的脚本运行失败:


    server = poplib.POP3_SSL(pop3_server, 995)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Python311-32\Lib\poplib.py", line 452, in __init__
    POP3.__init__(self, host, port, timeout)
  File "c:\Python311-32\Lib\poplib.py", line 104, in __init__
    self.sock = self._create_socket(timeout)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Python311-32\Lib\poplib.py", line 456, in _create_socket
    sock = self.context.wrap_socket(sock,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Python311-32\Lib\ssl.py", line 517, in wrap_socket
    return self.sslsocket_class._create(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Python311-32\Lib\ssl.py", line 1075, in _create
    self.do_handshake()
  File "c:\Python311-32\Lib\ssl.py", line 1346, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:992)

查看python升级变化的文档,提示在3.10版有涉及:

Important deprecations, removals or restrictions:

PEP 644, Require OpenSSL 1.1.1 or newer

应该是ssl相关的版本变化引起。

为使新版的SSL与原服务器的适配,增加设置:

import ssl
ctx = ssl.create_default_context()
ctx.set_ciphers('DEFAULT')
#...
server = poplib.POP3_SSL(pop3_server, 995,context=ctx)

运行发现已经能进一步了,但是又报错误:

    server = poplib.POP3_SSL(pop3_server, 995,context=ctx)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\python311-32\Lib\poplib.py", line 452, in __init__
    POP3.__init__(self, host, port, timeout)
  File "C:\python311-32\Lib\poplib.py", line 104, in __init__
    self.sock = self._create_socket(timeout)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\python311-32\Lib\poplib.py", line 456, in _create_socket
    sock = self.context.wrap_socket(sock,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\python311-32\Lib\ssl.py", line 517, in wrap_socket
    return self.sslsocket_class._create(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\python311-32\Lib\ssl.py", line 1075, in _create
    self.do_handshake()
  File "C:\python311-32\Lib\ssl.py", line 1346, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:992)

此为自签证书错误,借处理爬虫时,忽略网站证书的方法,查找对应功能调整为:

import ssl
ctx = ssl._create_unverified_context() #起到忽略证书校验的作用
ctx.set_ciphers('DEFAULT') #与老服务器握手搭配
#...
server = poplib.POP3_SSL(pop3_server, 995,context=ctx)

至此,在新python3.11版本下恢复正常,问题解决。文章来源地址https://www.toymoban.com/news/detail-517741.html

到了这里,关于ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] 错误处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • requests出现ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)解决方案

      大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作

    2024年02月11日
    浏览(44)
  • Python发送邮件报错:ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1129)

    做自动化发送邮件提醒功能时发现无法连接smtp.office365.com服务器,报ssl版本错误。 这是一个 Python 中的 SSL 错误,通常表示请求的 SSL 版本不受支持。这通常是因为该服务器支持的 SSL 版本与客户端请求的版本不匹配。如果遇到此错误,可以通过以下几种方法解决: 更新到最新

    2024年02月02日
    浏览(32)
  • python+requests库使用时报错:ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1131)

    本人测试小白~第一次用python+unittest+request做接口测试的学习时,一直报这个ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1131) 反复检查代码也没有发现什么问题,然后在网上找了很多方法,最终解决这个问题的方法如下: 进入电脑的“网络和Internet“设置页面 点击进

    2024年02月11日
    浏览(45)
  • 解决:pip安装包时出现SSL证书认证问题-SSLError-SSLZeroReturnError等

    安装时出现SSL证书认证问题,如下图: 1、可以通过下载包的whl文件放在本地进行安装 2、将源换为http开头的链接,不用https协议的链接 1、通过whl文件进行本地安装 下载.whl文件:可以直接在官网下载包,要注意下载的包是否适配。本地安装可以参考该文章 2、换源进行下载

    2024年02月14日
    浏览(46)
  • Python Install 报错”‘SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED]

    1. 临时解决方案 信任 pip install 时候加入可选命令 --trusted-host pypi.org , 仅单次安装有效 信任官网链接: python -m pip install --upgrade pip --trusted-host pypi.org --trusted-host files.pythonhosted.org 临时使用镜像: pip install pillow -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 建议使用下面的三

    2024年02月12日
    浏览(49)
  • javax.net.ssl.SSLException: Received fatal alert: protocol_version

    双方ssl版本协议不一致,会爆出这个异常 解决方案:在HttpClientUtil类设置

    2024年02月07日
    浏览(35)
  • javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

    原因:从java8 Update31开始,由于SSL协议中的安全漏洞,默认情况下禁用SSL v3协议 。 排查过程:可使用如下代码,打印http请求协议过程 插曲:最初报错异常是javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate),按网上教程,找到jdk.tls.

    2024年02月11日
    浏览(40)
  • javax.net.ssl.SSLException: Received fatal alert: protocol_version解决

    今天在开发过程中,调用一个https的接口引发错误 在Java 1.8上,默认TLS协议是v1.2。在Java 1.6和1.7上,默认是已废弃的TLS1.0,由于此项目使用的是jdk1.6,因此引发错误。 解决方法1: 在发起请求前面设置 TLSv1.2 协议 解决方法2: 在发起请求前忽略ssl认证: 工具类: 使用方法:

    2024年02月11日
    浏览(51)
  • 麒麟v10 curl报错:SSLv3_client_method version OPENSSL_1_1_0 not define

      /usr/bin/cmake3: relocation error: /usr/lib64/libcurl.so.4: symbol SSLv3_client_method version OPENSSL_1_1_0 not defined in file libssl.so.1.1 with link time reference 参考网上资料得知,该错误是/usr/lib64中的动态链接中无法识别和链接,对此所采取的解决方法也是十分的简单,那就是将其加入到系统环境路径下

    2024年02月05日
    浏览(29)
  • Caused by: javax.net.ssl.SSLException: Received fatal alert: protocol_version

        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1575)     at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:854)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     

    2024年02月06日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包