mise 管理多版本 Go 项目
2026/10/10 10:02:43
这个错误表明你的Python程序在尝试通过HTTPS连接到MinIO服务器时,SSL握手失败了。根本原因是客户端和服务器在SSL/TLS协议版本或端口使用上存在不匹配。
让我们来详细分析并解决这个问题:
核心错误:OpenSSL.SSL.Error: [('SSL routines', 'ssl3_get_record', 'wrong version number')]
连接信息:你正在尝试连接到119.84.128.79:39000
可能的原因:
首先确认你的MinIO服务器实际配置:
检查MinIO是否启用了HTTPS:
# 登录到MinIO服务器,检查运行参数psaux|grepminio查看是否包含--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根据测试结果调整客户端代码:
fromminioimportMinio# 改为使用http而不是httpsminio_client=Minio('119.84.128.79:39000',access_key='your-access-key',secret_key='your-secret-key',secure=False# 禁用SSL)确认没有代理干扰:
importos# 确保没有设置不正确的代理os.environ['NO_PROXY']='119.84.128.79'尝试禁用SSL验证(仅测试用):
fromminioimportMiniofromurllib3importdisable_warningsfromurllib3.exceptionsimportInsecureRequestWarning 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验证(不推荐生产环境使用)importssl minio_client._http.ssl_context=ssl._create_unverified_context()pipinstall--upgrade minio urllib3 pyOpenSSL如果MinIO确实配置了HTTPS,但使用自签名证书:
获取服务器证书:
openssl s_client -connect119.84.128.79:39000 -showcerts</dev/null2>/dev/null|openssl x509 -outform PEM>minio.crt在客户端代码中指定证书:
importsslfromminioimportMinio# 创建自定义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服务器在39000端口上运行的是HTTP服务,但你的客户端尝试用HTTPS连接。请首先尝试方案1中的修改,将secure=False添加到MinIO客户端初始化中。
如果问题仍然存在,请提供更多关于你的MinIO服务器配置的信息,我可以给出更具体的建议。