当前位置: 首页 > news >正文

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

相关文章:

  • 【数据结构】栈 与【LeetCode】20.有效的括号详解
  • Spring Boot分布式项目实战:装饰模式的正确打开方式
  • 【网络】:应用层 —— HTTP协议
  • CloudCompare (CC)中ccHObject详解
  • 故障扭曲棱镜反射照片效果ps特效滤镜样机 Distorted Mirror Poster Effect
  • 日志打印级别定义
  • 高精度除法
  • SPI通信协议
  • uvm sequence
  • zsh安装以及安装配置oh-my-zsh安装zsh-autosuggestionszsh-syntax-highlighting
  • 条件变量与生产者-消费者模型
  • Unix/Linux 系统下的文件权限
  • D3524 PWM控制芯片详解:特性、参数与典型应用
  • arm非对齐访问编译器选项
  • vue(1-45)
  • GitHub美化个人主页3D图表显示配置操作
  • [力扣每日一练]关于MySQL和pandas的正则表达式应用
  • caddy常用配置
  • torchvision中数据集的使用
  • ros2 humble无法识别头文件<rclcpp/rclcpp.hpp>
  • 免费的ppt成品网站大全/网络推广员的工作内容和步骤
  • 专门做杂志的网站/简述什么是seo
  • 坪山网站建设哪家公司靠谱/seo专业培训需要多久
  • 没有内容的网站应该怎么做/冯耀宗seo视频教程
  • 扬州网站制作/个人网站制作多少钱
  • js弹出网站/电脑培训学校排名