MinIO Docker新版本使用SSL证书报错x509无IP SANs如何解决?
不需要修改Docker配置,通过调整MinIO本身的启动参数即可解决该问题,无需重新签发证书。
问题根因
该报错是2021年下半年版本MinIO新增的内部自调用逻辑导致的:MinIO默认会使用容器内部IP进行服务内部请求,你的SSL证书仅绑定了对外域名,未包含容器内网IP的SAN字段,因此触发了TLS证书校验失败。
解决方案
方案1(优先推荐,无安全风险)
配置MINIO_SERVER_URL环境变量,强制MinIO所有内部请求使用你绑定的对外域名发起,完全规避内网IP的证书校验逻辑。
Docker run 启动示例:
docker run -d \ -p 9000:9000 \ -p 9001:9001 \ -v /本地数据存储路径:/data \ -v /本地SSL证书存储路径:/root/.minio/certs \ -e "MINIO_ROOT_USER=你的AccessKey" \ -e "MINIO_ROOT_PASSWORD=你的SecretKey" \ -e "MINIO_SERVER_URL=https://minio.example.com" \ minio/minio:RELEASE.2021-09-24T00-24-24Z server /data \ --console-address ":9001"
注:你此前使用的
MINIO_ACCESS_KEY、MINIO_SECRET_KEY已被新版MinIO标记为废弃变量,建议替换为示例中的MINIO_ROOT_USER、MINIO_ROOT_PASSWORD,兼容性不受影响。
Docker Compose 配置示例:
version: '3' services: minio: image: minio/minio:RELEASE.2021-09-24T00-24-24Z ports: - "9000:9000" - "9001:9001" volumes: - ./data:/data - ./certs:/root/.minio/certs environment: MINIO_ROOT_USER: 你的AccessKey MINIO_ROOT_PASSWORD: 你的SecretKey MINIO_SERVER_URL: https://minio.example.com command: server /data --console-address ":9001"
方案2(特殊场景可选,存在安全风险)
如果你确实需要关闭TLS校验逻辑,可以新增环境变量MINIO_BROWSER_TLS_VERIFY=off,该配置会直接关闭MinIO的TLS证书校验,无需调整证书内容,但会降低服务安全性,非必要不建议使用。
内容的提问来源于stack exchange,提问作者fistameeny
相关产品推荐
相关产品推荐

