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

2019-03-08 10:14:44 +08:00
 fox0001
DNSpod 的 API 网站( https://dnsapi.cn )升级了 TLSv1.3,利用 Python 连上去更新 IP 与域名绑定时,提示 handshake 失败。

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

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

昨天还一直没问题的
wwqgtxx
2019-03-08 18:44:10 +08:00
@fox0001 我用 requests 和 aiohttp 试了都没问题,http.client 没试过
wwqgtxx
2019-03-08 19:48:46 +08:00
@fox0001 能让我看一下你的机器上
ssl._create_default_https_context().options
的输出么,先 import ssl
Arnie97
2019-03-08 20:10:31 +08:00
强制 TLS v1.3 的网站目前基本没有,盲猜你可能是需要 $ pip install "requests[security]"
0ZXYDDu796nVCFxq
2019-03-08 20:21:35 +08:00
又不是 TLS v1.3 only
fox0001
2019-03-09 00:22:49 +08:00
@wwqgtxx #7 显示一串数字:2182217812
fox0001
2019-03-09 01:00:31 +08:00
@ysc3839 #1
@NoAnyLove #2
@wwqgtxx #3
@Arnie97 #8
感谢各位支招。虽然找不到 http.client 连不上的原因,但是改用 requests 后正常了。那就改用 requests 吧
0312birdzhang
2019-03-09 06:16:04 +08:00
用 tlsv2 就行了
chengxiao
2019-03-09 07:11:27 +08:00
我说怎么这两天路由里的 ddns 不更新了……
zwh2698
2019-03-09 07:58:17 +08:00
不升级 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