python连接minio报错‘SSLroutines‘,‘ssl3_get_record‘,‘wrongversionnumber‘的解决方法

Written by

in

文章目录
  • 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服务器配置问题
  • 首先确认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报错解决内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python连接MinIO的完整指南 Python中使用Minio实现图像或视频文件存储的步骤 使用Python和FastAPI实现MinIO断点续传功能 python使用pandas从minio读取excel文件方式 如何使用Typora+MinIO+Python代码打造舒适协作环境 Python实现上传Minio和阿里Oss文件
  • 目录
    • 错误原因分析
    • 解决方案
      • 方案1:检查MinIO服务器配置(最可能)
      • 方案2:检查网络和代理设置
      • 方案3:更新相关库
      • 方案4:检查MinIO服务器SSL证书
    • 推荐排查步骤

      这个错误表明你的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服务器配置问题

      首先确认你的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
      )
      

      确认没有代理干扰:

      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()

      pip install --upgrade minio urllib3 pyOpenSSL
      

      如果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报错解决内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

      您可能感兴趣的文章:

      • Python连接MinIO的完整指南
      • Python中使用Minio实现图像或视频文件存储的步骤
      • 使用Python和FastAPI实现MinIO断点续传功能
      • python使用pandas从minio读取excel文件方式
      • 如何使用Typora+MinIO+Python代码打造舒适协作环境
      • Python实现上传Minio和阿里Oss文件

      站内搜索