Python Requests降低TLS版本

环境:

Python3.9

requests 2.31

 

背景:

遇到一个较为老旧的SSL协议的网站。

在requests 2.31下请求报错

Caused by SSLError(SSLError(1, ‘[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1131)’))

而在Linux上直接用curl或者Postman工具则正常

 

这里有如下思路:

1、降低requests和urllib3的版本

经过尝试,该方案不可行

2、使用适配器

import ssl
import urllib3
import requests.packages.urllib3.exceptions as urllib3_exceptions
warnings.simplefilter("ignore", urllib3_exceptions.InsecureRequestWarning)

class TLSAdapter(requests.adapters.HTTPAdapter):
    def init_poolmanager(self, *args, **kwargs):
        ctx = ssl.create_default_context()
        ctx.check_hostname = False
        ctx.set_ciphers("DEFAULT@SECLEVEL=1")
        ctx.options |= 0x4
        kwargs["ssl_context"] = ctx
        return super(TLSAdapter, self).init_poolmanager(*args, **kwargs)

def login():
    url = 'https://login.a.com'
    headers = {
        'Host': 'login.a.com',
        'User-Agent': 'okhttp/3.11',
    }
    data = {
        'passWord': '123456',
        'userName': '13666666666'
    }
    session = requests.session()
    session.mount("https://", TLSAdapter())
    response = session.post(url=url, headers=headers, params=data, verify=False)
    print(response.text)

最后就可以顺利的打印出返回的结果了

 

出现该问题的原因

requests.exceptions.SSLError错误通常指出在尝试建立一个HTTPS连接时遇到了SSL相关的问题。

错误信息 “[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled” 表示安全连接建立失败,因为旧版本的SSL重协商被认为是不安全的,因此在新版本的requests中已被禁用。

因此requests直接就报错了。尝试重新用适配器的方式去强制设置不去检查安全问题则可以解决这个问题。

 

《Python Requests降低TLS版本》为 九城 原创,创作不易!转载请注明出处!感谢!
文章地址:https://blog.minkse.cn/python-requests%e9%99%8d%e4%bd%8etls%e7%89%88%e6%9c%ac/
暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇