配置MinIO为Django应用对象存储本地测试时出现SSL错误
报错根因定位
- 报错抛出的
WRONG_VERSION_NUMBERSSL错误,本质是通信协议不匹配:当前Django端配置强制使用HTTPS协议访问MinIO服务,但本地运行的MinIO实例默认在9000端口提供的是无SSL加密的HTTP明文服务。客户端按照HTTPS规范发送TLS握手请求时,收到的是普通HTTP格式的响应,SSL校验直接失败,最终触发连接重试耗尽的报错。 - 直接触发该问题的配置项就是
settings.py中的MINIO_USE_HTTPS = True,该配置和本地无SSL的MinIO运行环境完全不匹配。
分步修复方案
- 调整核心协议配置
本地测试场景无需启用SSL加密,将MINIO_USE_HTTPS的值修改为False,让客户端使用普通HTTP协议对接本地9000端口的MinIO服务。 - 修正配置中的细节错误
- 移除
MINIO_ACCESS_KEY和MINIO_SECRET_KEY末尾多余的空格:当前配置中两个密钥值分别为'minioadmin ',末尾的空格会被作为密钥的一部分参与鉴权,和本地MinIO默认的minioadmin密钥不匹配,会触发后续的鉴权失败问题。 - 删除
MINIO_POLICY_HOOKS配置行末尾多余的here字符,避免触发Python语法解析错误。 - 移除重复的
MINIO_CONSISTENCY_CHECK_ON_START配置行,减少冗余配置提升可读性。
- 移除
- 基础连通性校验
修改配置后,先确认本地MinIO服务正常启动、9000端口未被其他程序占用,再重启Django服务验证连接。如果后续需要在本地测试HTTPS场景,需要给本地MinIO实例配置对应SSL证书,让9000端口监听HTTPS请求,此时再将MINIO_USE_HTTPS改回True即可正常连接。
内容的提问来源于stack exchange,提问作者Zahra Hosseini
相关产品推荐
相关产品推荐

