python连接minio报错‘SSL routines‘,‘ssl3_get_record‘,‘wrong version number‘的解决方法

 更新时间:2026年01月13日 14:51:54   作者:detayun  
这篇文章主要为大家详细介绍了python连接minio报错‘SSL routines‘,‘ssl3_get_record‘,‘wrong version number‘的解决方法,文中的示例代码讲解详细,有需要的小伙伴可以了解下

这个错误表明你的Python程序在尝试通过HTTPS连接到MinIO服务器时,SSL握手失败了。根本原因是客户端和服务器在SSL/TLS协议版本或端口使用上存在不匹配。

让我们来详细分析并解决这个问题:

错误原因分析

1.核心错误:OpenSSL.SSL.Error: [('SSL routines', 'ssl3_get_record', 'wrong version number')]

这通常表示客户端尝试用SSL/TLS协议连接到一个实际上并未使用SSL/TLS的端口,或者协议版本不匹配。

2.连接信息:你正在尝试连接到 119.84.128.79:39000

  • 这是一个非标准的HTTPS端口(通常HTTPS使用443端口)
  • MinIO默认使用9000端口(HTTP)和9001端口(HTTPS)

3.可能的原因:

  • MinIO服务器实际上在39000端口上运行的是HTTP服务,但你的客户端尝试用HTTPS连接
  • SSL/TLS协议版本不兼容
  • 防火墙或代理干扰了SSL握手

MinIO服务器配置问题

解决方案

方案1:检查MinIO服务器配置(最可能)

首先确认你的MinIO服务器实际配置:

检查MinIO是否启用了HTTPS:

# 登录到MinIO服务器,检查运行参数
ps aux | grep minio

查看是否包含--address ":39000"和--ssl相关参数

尝试用curl测试连接:

# 测试HTTP连接
curl -v http://119.84.128.79:39000

# 测试HTTPS连接
curl -v https://119.84.128.79:39000

# 如果服务器使用自签名证书
curl -v -k https://119.84.128.79:39000

根据测试结果调整客户端代码:

如果39000端口是HTTP,修改MinIO客户端初始化代码:

from minio import Minio

# 改为使用http而不是https
minio_client = Minio(
    '119.84.128.79:39000',
    access_key='your-access-key',
    secret_key='your-secret-key',
    secure=False  # 禁用SSL
)

方案2:检查网络和代理设置

确认没有代理干扰:

import os
# 确保没有设置不正确的代理
os.environ['NO_PROXY'] = '119.84.128.79'

尝试禁用SSL验证(仅测试用):

from minio import Minio
from urllib3 import disable_warnings
from urllib3.exceptions import InsecureRequestWarning

disable_warnings(InsecureRequestWarning)

minio_client = Minio(
    '119.84.128.79:39000',
    access_key='your-access-key',
    secret_key='your-secret-key',
    secure=True  # 保持为True,但我们将禁用验证
)

# 强制禁用SSL验证(不推荐生产环境使用)
import ssl
minio_client._http.ssl_context = ssl._create_unverified_context()

方案3:更新相关库

pip install --upgrade minio urllib3 pyOpenSSL

方案4:检查MinIO服务器SSL证书

如果MinIO确实配置了HTTPS,但使用自签名证书:

获取服务器证书:

openssl s_client -connect 119.84.128.79:39000 -showcerts </dev/null 2>/dev/null | openssl x509 -outform PEM > minio.crt

在客户端代码中指定证书:

import ssl
from minio import Minio

# 创建自定义SSL上下文
ssl_context = ssl.create_default_context(cafile='path/to/minio.crt')

minio_client = Minio(
    '119.84.128.79:39000',
    access_key='your-access-key',
    secret_key='your-secret-key',
    secure=True,
    ssl=ssl_context
)

推荐排查步骤

  • 首先确认MinIO服务器实际配置 - 这是最可能的问题所在
  • 使用curl测试连接 - 确定端口实际使用的协议
  • 根据测试结果调整客户端配置 - 修改secure参数或SSL设置
  • 检查网络连通性 - 确保没有防火墙或代理干扰

根据你的错误信息,最可能的情况是MinIO服务器在39000端口上运行的是HTTP服务,但你的客户端尝试用HTTPS连接。请首先尝试方案1中的修改,将secure=False添加到MinIO客户端初始化中。

如果问题仍然存在,请提供更多关于你的MinIO服务器配置的信息,我可以给出更具体的建议。

到此这篇关于python连接minio报错‘SSL routines‘,‘ssl3_get_record‘,‘wrong version number‘的解决方法的文章就介绍到这了,更多相关python连接minio报错解决内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Numpy 数组操作之元素添加、删除和修改的实现

    Numpy 数组操作之元素添加、删除和修改的实现

    本文主要介绍了Numpy 数组操作之元素添加、删除和修改的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 使用Python简单实现去除彩色水印

    使用Python简单实现去除彩色水印

    这篇文章主要为大家详细介绍了如何使用Python简单实现去除彩色水印效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-02-02
  • 详解Python Requests库中的重试策略

    详解Python Requests库中的重试策略

    在Python中,requests库是处理HTTP请求的标准工具之一,这篇文章主要为大家介绍了如何在requests中实现请求的自动重试,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • Python multiprocessing.Manager介绍和实例(进程间共享数据)

    Python multiprocessing.Manager介绍和实例(进程间共享数据)

    这篇文章主要介绍了Python multiprocessing.Manager介绍和实例(进程间共享数据),本文介绍了Manager的dict、list使用例子,同时介绍了namespace对象,需要的朋友可以参考下
    2014-11-11
  • matplotlib实现矩阵和图像的可视化表示

    matplotlib实现矩阵和图像的可视化表示

    这篇文章主要为大家详细介绍了如何利用matplotlib实现矩阵和图像的可视化表示,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解下
    2024-03-03
  • 深入理解Python虚拟机中调试器实现原理与源码分析

    深入理解Python虚拟机中调试器实现原理与源码分析

    本文主要给大家介绍python中调试器的实现原理,通过了解一个语言的调试器的实现原理我们可以更加深入的理解整个语言的运行机制,可以帮助我们更好的理解程序的执行,感兴趣的可以了解一下
    2023-04-04
  • Python海象运算符超详细讲解

    Python海象运算符超详细讲解

    海象运算符的英文原名叫Assignment Expresions,翻译过来也就是赋值表达式,不过现在大家更普遍地称之为海象运算符,就是因为它长得真的太像海象了
    2023-01-01
  • Python解析JSON数据的基本方法实例代码

    Python解析JSON数据的基本方法实例代码

    JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,下面这篇文章主要给大家介绍了关于Python解析JSON数据的基本方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • Python闭包装饰器综合案例解析

    Python闭包装饰器综合案例解析

    文章主要介绍了Python中的闭包和装饰器,闭包用于在全局作用域中访问局部变量,而装饰器则用于给函数增加额外功能,而无需改变现有代码和调用方式,文章还解释了如何使用PyMySQL进行数据库编程,包括安装、使用和安全连接操作,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • Python并发编程队列与多线程最快发送http请求方式

    Python并发编程队列与多线程最快发送http请求方式

    假如有一个文件,里面有10万个url,需要对每个url发送http请求,并打印请求结果的状态码,如何编写代码尽可能快的完成这些任务呢
    2021-09-09

最新评论