python連接minio報(bào)錯(cuò)‘SSL routines‘,‘ssl3_get_record‘,‘wrong version number‘的解決方法
這個(gè)錯(cuò)誤表明你的Python程序在嘗試通過(guò)HTTPS連接到MinIO服務(wù)器時(shí),SSL握手失敗了。根本原因是客戶端和服務(wù)器在SSL/TLS協(xié)議版本或端口使用上存在不匹配。
讓我們來(lái)詳細(xì)分析并解決這個(gè)問(wèn)題:
錯(cuò)誤原因分析
1.核心錯(cuò)誤:OpenSSL.SSL.Error: [('SSL routines', 'ssl3_get_record', 'wrong version number')]
這通常表示客戶端嘗試用SSL/TLS協(xié)議連接到一個(gè)實(shí)際上并未使用SSL/TLS的端口,或者協(xié)議版本不匹配。
2.連接信息:你正在嘗試連接到 119.84.128.79:39000
- 這是一個(gè)非標(biāo)準(zhǔn)的HTTPS端口(通常HTTPS使用443端口)
- MinIO默認(rèn)使用9000端口(HTTP)和9001端口(HTTPS)
3.可能的原因:
- MinIO服務(wù)器實(shí)際上在39000端口上運(yùn)行的是HTTP服務(wù),但你的客戶端嘗試用HTTPS連接
- SSL/TLS協(xié)議版本不兼容
- 防火墻或代理干擾了SSL握手
MinIO服務(wù)器配置問(wèn)題
解決方案
方案1:檢查MinIO服務(wù)器配置(最可能)
首先確認(rèn)你的MinIO服務(wù)器實(shí)際配置:
檢查MinIO是否啟用了HTTPS:
# 登錄到MinIO服務(wù)器,檢查運(yùn)行參數(shù) ps aux | grep minio
查看是否包含--address ":39000"和--ssl相關(guān)參數(shù)
嘗試用curl測(cè)試連接:
# 測(cè)試HTTP連接 curl -v http://119.84.128.79:39000 # 測(cè)試HTTPS連接 curl -v https://119.84.128.79:39000 # 如果服務(wù)器使用自簽名證書 curl -v -k https://119.84.128.79:39000
根據(jù)測(cè)試結(jié)果調(diào)整客戶端代碼:
如果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:檢查網(wǎng)絡(luò)和代理設(shè)置
確認(rèn)沒(méi)有代理干擾:
import os # 確保沒(méi)有設(shè)置不正確的代理 os.environ['NO_PROXY'] = '119.84.128.79'
嘗試禁用SSL驗(yàn)證(僅測(cè)試用):
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,但我們將禁用驗(yàn)證
)
# 強(qiáng)制禁用SSL驗(yàn)證(不推薦生產(chǎn)環(huán)境使用)
import ssl
minio_client._http.ssl_context = ssl._create_unverified_context()方案3:更新相關(guān)庫(kù)
pip install --upgrade minio urllib3 pyOpenSSL
方案4:檢查MinIO服務(wù)器SSL證書
如果MinIO確實(shí)配置了HTTPS,但使用自簽名證書:
獲取服務(wù)器證書:
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
# 創(chuàng)建自定義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
)推薦排查步驟
- 首先確認(rèn)MinIO服務(wù)器實(shí)際配置 - 這是最可能的問(wèn)題所在
- 使用curl測(cè)試連接 - 確定端口實(shí)際使用的協(xié)議
- 根據(jù)測(cè)試結(jié)果調(diào)整客戶端配置 - 修改secure參數(shù)或SSL設(shè)置
- 檢查網(wǎng)絡(luò)連通性 - 確保沒(méi)有防火墻或代理干擾
根據(jù)你的錯(cuò)誤信息,最可能的情況是MinIO服務(wù)器在39000端口上運(yùn)行的是HTTP服務(wù),但你的客戶端嘗試用HTTPS連接。請(qǐng)首先嘗試方案1中的修改,將secure=False添加到MinIO客戶端初始化中。
如果問(wèn)題仍然存在,請(qǐng)?zhí)峁└嚓P(guān)于你的MinIO服務(wù)器配置的信息,我可以給出更具體的建議。
到此這篇關(guān)于python連接minio報(bào)錯(cuò)‘SSL routines‘,‘ssl3_get_record‘,‘wrong version number‘的解決方法的文章就介紹到這了,更多相關(guān)python連接minio報(bào)錯(cuò)解決內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用Paramiko模塊編寫腳本進(jìn)行遠(yuǎn)程服務(wù)器操作
這篇文章主要介紹了Python使用Paramiko模塊編寫腳本進(jìn)行遠(yuǎn)程服務(wù)器操作的實(shí)例,通過(guò)Paramiko能夠方便地使用SSH服務(wù),需要的朋友可以參考下2016-05-05
Django中針對(duì)基于類的視圖添加csrf_exempt實(shí)例代碼
這篇文章主要介紹了Django中針對(duì)基于類的視圖添加csrf_exempt實(shí)例代碼,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02
Python實(shí)現(xiàn)兩個(gè)list對(duì)應(yīng)元素相減操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)兩個(gè)list對(duì)應(yīng)元素相減操作,結(jié)合具體實(shí)例形式分析了list對(duì)應(yīng)元素操作的簡(jiǎn)單實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-06-06
django開(kāi)發(fā)教程之利用緩存文件進(jìn)行頁(yè)面緩存的方法
緩存相信對(duì)各位程序員們來(lái)說(shuō)都不陌生,下面這篇文章主要給大家介紹了關(guān)于django開(kāi)發(fā)教程之利用緩存文件進(jìn)行頁(yè)面緩存的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
python函數(shù)超時(shí)自動(dòng)退出的實(shí)操方法
在本篇文章里小編給大家整理的是一篇關(guān)于python函數(shù)超時(shí)自動(dòng)退出的實(shí)操方法,有需要的朋友們可以學(xué)習(xí)下。2020-12-12
python實(shí)現(xiàn)簡(jiǎn)單飛行棋
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單飛行棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
基于Python的身份證號(hào)碼自動(dòng)生成程序
今天收到一個(gè)小需求:需要一個(gè)自動(dòng)生成身份證號(hào)碼的小程序。近期用python較多,因此打算用python實(shí)現(xiàn)2014-08-08

