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

2019 年 3 月 8 日
 fox0001
DNSpod 的 API 网站( https://dnsapi.cn )升级了 TLSv1.3,利用 Python 连上去更新 IP 与域名绑定时,提示 handshake 失败。

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

另外,用 curl 命令是可以访问该 API 的,那么用 Python 可以直接调用 curl 命令并获取结果吗?
5466 次点击
所在节点    Python
14 条回复
ysc3839
2019 年 3 月 8 日
那就用第三方库吧,比如 curl 就有 Python 的绑定。
NoAnyLove
2019 年 3 月 8 日
wwqgtxx
2019 年 3 月 8 日
@NoAnyLove 从 issue 看 3.6.3 就支持了,还有 2.7.15 也 backport 了,https://bugs.python.org/issue29136
wwqgtxx
2019 年 3 月 8 日
话说我刚才试着用浏览器访问了一下 https://dnsapi.cn/ ,发现用 TLS1.2 也能正常访问呀
fox0001
2019 年 3 月 8 日
@wwqgtxx #4 你是怎样访问的?我用 Python3 的 http.client 发送请求,提示
[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:720)

昨天还一直没问题的
wwqgtxx
2019 年 3 月 8 日
@fox0001 我用 requests 和 aiohttp 试了都没问题,http.client 没试过
wwqgtxx
2019 年 3 月 8 日
@fox0001 能让我看一下你的机器上
ssl._create_default_https_context().options
的输出么,先 import ssl
Arnie97
2019 年 3 月 8 日
强制 TLS v1.3 的网站目前基本没有,盲猜你可能是需要 $ pip install "requests[security]"
0ZXYDDu796nVCFxq
2019 年 3 月 8 日
又不是 TLS v1.3 only
fox0001
2019 年 3 月 9 日
@wwqgtxx #7 显示一串数字:2182217812
fox0001
2019 年 3 月 9 日
@ysc3839 #1
@NoAnyLove #2
@wwqgtxx #3
@Arnie97 #8
感谢各位支招。虽然找不到 http.client 连不上的原因,但是改用 requests 后正常了。那就改用 requests 吧
1daydayde
2019 年 3 月 9 日
用 tlsv2 就行了
chengxiao
2019 年 3 月 9 日
我说怎么这两天路由里的 ddns 不更新了……
zwh2698
2019 年 3 月 9 日
不升级 python 就自己编译源码吧,你将 open ssl 换成最新,然后修改 python 的 SSL 模块。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/542382

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX