首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[1330]SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy ren

[1330]SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy ren

原创
作者头像
周小董
发布2025-08-22 15:54:38
发布2025-08-22 15:54:38
10600
代码可运行
举报
文章被收录于专栏:异常问题异常问题
运行总次数:0
代码可运行

@toc

代码语言:python
代码运行次数:0
运行
复制
import requests


headers={
    "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
    "accept-encoding": "gzip, deflate, br, zstd",
    "accept-language": "zh-CN,zh;q=0.9",
    "connection": "keep-alive",
    "host": "chrm.mohrss.gov.cn",
    "referer": "https://chrm.mohrss.gov.cn/page/1?s=%E6%B2%B9",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
}

url = "https://chrm.mohrss.gov.cn/page/1"  # 不能用https,否者报错
params = {
    "s": "油"
}
response = requests.get(url,params= params, headers=headers) # ,verify=False
print(response.status_code)
print(response.text)

报错:

代码语言:python
代码运行次数:0
运行
复制
requests.exceptions.SSLError: HTTPSConnectionPool(host='chrm.mohrss.gov.cn', port=443): Max retries exceeded with url: /page/2?s=%E6%B2%B9 (Caused by SSLError(SSLError(1, '[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1007)')))

这个错误发生在 Python 尝试与使用不安全旧版 SSL/TLS 重新协商的服务器建立安全连接时。现代 Python 版本默认禁用了这种不安全的旧版重新协商方式。

解决

代码语言:python
代码运行次数:0
运行
复制
# 解决方法1
def demo1():
    url = "http://chrm.mohrss.gov.cn/page/1"  # 不用https,否者报错
    params = {"s": "油"}
    response = requests.get(url,params= params, headers=headers,proxies=proxies) # ,verify=False
    print(response.status_code)
    print(response.text)


# 解决方法2
def demo2():
    import ssl
    import urllib.request

    url = "https://chrm.mohrss.gov.cn/page/1?s=%E6%B2%B9"
    # url = 'http://myip.ipip.net/' # 代理测试

    # Set up SSL context to allow legacy TLS versions
    ctx = ssl.create_default_context(ssl.Purpose.SERVER_AUTH)
    ctx.options |= 0x4  # OP_LEGACY_SERVER_CONNECT

    # 不使用代理 =============================================
    # response = urllib.request.urlopen(url, context=ctx)
    # print(response.status)
    # print(response.read().decode())

    # 使用代理 ===============================================
    # 创建 SSL 上下文(如果需要绕过证书验证)
    # ctx = ssl.create_default_context()
    # ctx.check_hostname = False
    # ctx.verify_mode = ssl.CERT_NONE

    proxy_handler = urllib.request.ProxyHandler(proxies)
    # 创建 opener
    opener = urllib.request.build_opener(
        proxy_handler,
        urllib.request.HTTPSHandler(context=ctx)
    )
    # 只对这次请求使用代理
    response = opener.open(url)
    print(response.read().decode('utf-8'))

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 报错:
  • 解决
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档