python 连接配置SSL证书的Minio服务
1. 需求
我配置好了ssl证书给Minio服务,如何使用python API访问呢?
很多同学使用以下代码连接时会报错的
import minio
MINIO_CONF = {
'endpoint': '10.0.0.2:9000',
'access_key': 'gdzs',
'secret_key': 'gdzs',
'secure': True
}
client = minio.Minio(**MINIO_CONF)
------------------
报错信息:
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='10.0.0.2', port=9000): Max
retries exceeded with url: / (Caused by
SSLError(SSLCertVerificationError(1, '[SSL:
CERTIFICATE_VERIFY_FAILED] certificate verify
failed: self signed certificate (_ssl.c:1129)')))
2. 解决方法
方案1
把你生成的ssl证书crt,从minio的服务器上下载下来到开发机器上(就是你要写python代码的机器上)
然后使用以下代码
import minio
import os
os.environ['SSL_CERT_FILE'] = r"public.crt"
MINIO_CONF = {
'endpoint': '10.0.0.2:9000',
'access_key': 'gdzs',
'secret_key': 'gdzs',
'secure': True
}
client = minio.Minio(**MINIO_CONF)
# 获取桶列表
buck_list = client.list_buckets()
print(buck_list)
buck_obj_list = client.list_objects("whiteAPK")
方案2
把minio的public.crt的证书内容复制到cacert.pem中即可,设置后正常开启source:True即可访问
3. 问题分析
-
因为minio开启https后就无法使用http访问,所以使用’secure’: False也是不行的
我们可以通过看源码就知道了 可以看到源码中用了一个三目运算符根据secure来判断使用https还是http😂
-
设置公钥,因为python ssl连接时就会找到对应的公钥就可以了
5. 其他
5.1 友链
minio-python-doc
搜索专用关键词:
python使用https连接Minio
mino配置SSL使用Python 连接
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119250.html