建网站的公司南京成都sem优化
假设你已经有了域名 *.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-18Zcontainer_name: minio-RELEASE.2023-03-20T20-16-18Zrestart: alwaysports:- "9900:9900"- "9901:9901"volumes:- ./minio-RELEASE.2023-03-20T20-16-18Z/config:/root/.minio- ./minio-RELEASE.2023-03-20T20-16-18Z/data:/dataextra_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-18Zcontainer_name: minio-RELEASE.2023-03-20T20-16-18Zrestart: alwaysports:- "9900:9900"- "9901:9901"volumes:- ./minio-RELEASE.2023-03-20T20-16-18Z/config:/root/.minio- ./minio-RELEASE.2023-03-20T20-16-18Z/data:/dataextra_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