• python 连接配置SSL证书的Minio服务


    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)')))
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    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")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    方案2

    把minio的public.crt的证书内容复制到cacert.pem中即可,设置后正常开启source:True即可访问

    在这里插入图片描述
    这个文件的路径在解释器的路径为:Lib/site-packages/certifi/cacert.pem
    在这里插入图片描述

    3. 问题分析

    1. 因为minio开启https后就无法使用http访问,所以使用’secure’: False也是不行的
      我们可以通过看源码就知道了 可以看到源码中用了一个三目运算符根据secure来判断使用https还是http😂
      在这里插入图片描述

    2. 设置公钥,因为python ssl连接时就会找到对应的公钥就可以了

    5. 其他

    5.1 友链

    minio-python-doc
    搜索专用关键词:
    python使用https连接Minio
    mino配置SSL使用Python 连接

  • 相关阅读:
    QT事件系统_lineEdit输入信息触发事件方法
    Nginx介绍与安装
    RocketMQ学习笔记(一)
    数据增强
    在Windows上使用nginx具体步骤
    JavaScript 伪数组和数组
    nginx 启动、停止、关闭
    设计模式 -- 工厂模式(Factory Pattern)
    【Java项目】新冠疫情统计系统
    从零开始学习typescript——数据类型
  • 原文地址:https://blog.csdn.net/weixin_44331765/article/details/127731143