Docker部署minio,SSL证书问题与两个解决方案

假设你已经有了域名 *.yourdomain.com,且申请了一个可用的ssl证书。

(1)使用Nginx转发Minio

此种情况的条件可能为,Nginx与Minio部署在同一台机器上,Nginx开放了443端口(有其他服务也是用了Nginx代理),此时Minio就不能占有443端口了。

部署Minio的docker-compose.yml

version: '3'
services:
  minio:
    image: minio/minio:RELEASE.2023-03-20T20-16-18Z
    container_name: minio-RELEASE.2023-03-20T20-16-18Z
    restart: always
    ports:
      - "9900:9900"
      - "9901:9901"
    volumes:
      - ./minio-RELEASE.2023-03-20T20-16-18Z/config:/root/.minio
      - ./minio-RELEASE.2023-03-20T20-16-18Z/data:/data
    extra_hosts:
      - "file-test.yourdomain.com:192.168.213.5"
      - "minio-test.yourdomain.com:192.168.213.5"
    environment:
      MINIO_ACCESS_KEY: "ud6Krmb7z1k2sxm"
      MINIO_SECRET_KEY: "6LwwnkQ3pgp9kHc"
      MINIO_SERVER_URL: "https://file-test.yourdomain.com"
      MINIO_BROWSER_URL: "https://minio-test.yourdomain.com"
    command: server /data --console-address ":9901" -address ":9900"

此时minio内部端口为9900和9901,其中9900为API端口,9901为浏览器端口。

使用Nginx转发的配置文件,minio.conf,并假设Nginx暴露ssl端口为443。

    server {
        listen       443 ssl;
        server_name  file-test.yourdomain.com;

        ssl_certificate /etc/nginx/ssl/public.cer;
        ssl_certificate_key /etc/nginx/ssl/private.key;

        charset utf-8;

        location / {
            proxy_pass http://192.168.213.5:9900/;
            client_max_body_size 1024M;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }

        error_page   500 502 503 504  /usr/share/nginx/html/50x.html;
        location = /50x.html {
            root   html;
        }
    }

    server {
        listen       443 ssl;
        server_name  minio-test.yourdomain.com;

        ssl_certificate /etc/nginx/ssl/public.cer;
        ssl_certificate_key /etc/nginx/ssl/private.key;

        charset utf-8;

        location / {
            proxy_pass http://192.168.213.5:9901/;
            client_max_body_size 1024M;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
        }

        error_page   500 502 503 504  /usr/share/nginx/html/50x.html;
        location = /50x.html {
            root   html;
        }

此时配置好之后,需要通过此种方式在Minio中配置ssl证书。

进入minio的部署目录,docker-ccompose挂载了一个卷,进入目录:config/certs/CAs

将fullchain.cer文件放到此目录内,目录结构如下:

[root@localhost CAs]# ls
fullchain.cer
[root@localhost CAs]# pwd
/data/docker-compose/middleware/minio-RELEASE.2023-03-20T20-16-18Z/config/certs/CAs

此时,浏览器访问:https://minio-test.yourdomain.com 即可访问minio页面

API调用地址为:https://file-test.yourdomain.com

【注】fullchain.cer就是public.cer与ca.cer合一起了。

(2)不使用Nginx转发Minio,Minio使用https://域名:端口访问

minio的docker-compose.yml文件如下,只在环境变量中添加了访问的端口信息:

version: '3'
services:
  minio:
    image: minio/minio:RELEASE.2023-03-20T20-16-18Z
    container_name: minio-RELEASE.2023-03-20T20-16-18Z
    restart: always
    ports:
      - "9900:9900"
      - "9901:9901"
    volumes:
      - ./minio-RELEASE.2023-03-20T20-16-18Z/config:/root/.minio
      - ./minio-RELEASE.2023-03-20T20-16-18Z/data:/data
    extra_hosts:
      - "minio.yourdomain.com:192.168.213.5"
    environment:
      MINIO_ACCESS_KEY: "ud6Krmb7z1k2sxm"
      MINIO_SECRET_KEY: "6LwwnkQ3pgp9kHc"
      MINIO_SERVER_URL: "https://minio.yourdomain.com:9900"
      MINIO_BROWSER_URL: "https://minio.yourdomain.com:9901"
    command: server /data --console-address ":9901" -address ":9900"

将ssl证书放到minio的.config/certs文件夹中,目录结构如下,CAs文件夹为空:

[root@ecm-93b7-0001 certs]# ls
CAs  private.key  public.crt
[root@ecm-93b7-0001 certs]# pwd
/data/docker-compose/middleware/minio-RELEASE.2023-03-20T20-16-18Z/config/certs

【特别注意】必须叫private.key、public.crt,如果更名,需要修改docker-compose,请自行百度。

此时,浏览器访问:https://minio.yourdomain.com:9900 即可访问minio页面

API调用地址为:https://minio.yourdomain.com:9901

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值