V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
fox0001
V2EX  ›  Python

Python3.5 可以支持 TLSv1.3 吗?

  •  
  •   fox0001 · 2019-03-08 10:14:44 +08:00 via Android · 5031 次点击
    这是一个创建于 1847 天前的主题,其中的信息可能已经有所发展或是发生改变。
    DNSpod 的 API 网站( https://dnsapi.cn )升级了 TLSv1.3,利用 Python 连上去更新 IP 与域名绑定时,提示 handshake 失败。

    查了下,貌似 Python3.7 才支持 TLSv1.3,不升级 Python,可以解决吗?

    另外,用 curl 命令是可以访问该 API 的,那么用 Python 可以直接调用 curl 命令并获取结果吗?
    第 1 条附言  ·  2019-03-09 01:01:41 +08:00
    感谢 @wwqgtxx 的提醒,不纠结了,改用 requests
    14 条回复    2019-03-09 07:58:17 +08:00
    ysc3839
        1
    ysc3839  
       2019-03-08 10:17:50 +08:00 via Android   ❤️ 1
    那就用第三方库吧,比如 curl 就有 Python 的绑定。
    NoAnyLove
        2
    NoAnyLove  
       2019-03-08 11:25:02 +08:00
    wwqgtxx
        3
    wwqgtxx  
       2019-03-08 12:00:26 +08:00
    @NoAnyLove 从 issue 看 3.6.3 就支持了,还有 2.7.15 也 backport 了,https://bugs.python.org/issue29136
    wwqgtxx
        4
    wwqgtxx  
       2019-03-08 15:12:49 +08:00   ❤️ 1
    话说我刚才试着用浏览器访问了一下 https://dnsapi.cn/ ,发现用 TLS1.2 也能正常访问呀
    fox0001
        5
    fox0001  
    OP
       2019-03-08 17:30:29 +08:00 via Android
    @wwqgtxx #4 你是怎样访问的?我用 Python3 的 http.client 发送请求,提示
    [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:720)

    昨天还一直没问题的
    wwqgtxx
        6
    wwqgtxx  
       2019-03-08 18:44:10 +08:00 via iPhone   ❤️ 1
    @fox0001 我用 requests 和 aiohttp 试了都没问题,http.client 没试过
    wwqgtxx
        7
    wwqgtxx  
       2019-03-08 19:48:46 +08:00   ❤️ 1
    @fox0001 能让我看一下你的机器上
    ssl._create_default_https_context().options
    的输出么,先 import ssl
    Arnie97
        8
    Arnie97  
       2019-03-08 20:10:31 +08:00 via Android
    强制 TLS v1.3 的网站目前基本没有,盲猜你可能是需要 $ pip install "requests[security]"
    gstqc
        9
    gstqc  
       2019-03-08 20:21:35 +08:00 via Android
    又不是 TLS v1.3 only
    fox0001
        10
    fox0001  
    OP
       2019-03-09 00:22:49 +08:00
    @wwqgtxx #7 显示一串数字:2182217812
    fox0001
        11
    fox0001  
    OP
       2019-03-09 01:00:31 +08:00
    @ysc3839 #1
    @NoAnyLove #2
    @wwqgtxx #3
    @Arnie97 #8
    感谢各位支招。虽然找不到 http.client 连不上的原因,但是改用 requests 后正常了。那就改用 requests 吧
    0312birdzhang
        12
    0312birdzhang  
       2019-03-09 06:16:04 +08:00
    用 tlsv2 就行了
    chengxiao
        13
    chengxiao  
       2019-03-09 07:11:27 +08:00 via iPhone
    我说怎么这两天路由里的 ddns 不更新了……
    zwh2698
        14
    zwh2698  
       2019-03-09 07:58:17 +08:00 via Android
    不升级 python 就自己编译源码吧,你将 open ssl 换成最新,然后修改 python 的 SSL 模块。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4815 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:56 · PVG 17:56 · LAX 02:56 · JFK 05:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.