MinIO+Nginx开启https域名访问
前言:按照文章顺序操作,踩过的坑都避开了!
环境
- 文章建立在MinIO服务是通过Docker容器创建
- 假设本文以下使用域名:minio.itze.cn
- 假设服务器IP:123.123.123.123
前期准备
1.将域名解析到服务器IP
查看解析成功示例,windows下使用命令
ping minio.itze.cn -t |
出现如上图所示,说明域名已经解析到对应的IP地址,会有人问:去哪里添加解析,答:去购买域名的厂商控制台,比如你的域名是阿里云注册的,就登陆阿里云控制台有相关解析操作流程
2.申请域名对应的SSL免费证书,PS:资金富裕的直接付费买
这里提供一个申请免费的地址,每次申请有效期1年,https://console.cloud.tencent.com/ssl 申请SSL注意事项:按照提示,需要有验证域名是你的操作,一般两种方式,1.DNS,2.文件,建议使用推荐的方法添加一条解析即可,一般十几分钟就能颁发证书,证书颁发后选择-下载-Nginx
nginx反向代理MinIO API地址并配置https
这里利用到了Nginx的反向代理,配置文件如下,建议不要改动原来的nginx.conf文件,另外再单独创建一个nginx_minio.conf文件在默认的nginx.conf文件中加入一句话,位置放到**http{}**块中
include /你的nginx_minio.conf的路径/*.conf; |
nginx_minio.conf 配置完整内容
itze.cn ProxyStart |
MinIO 配置https
1.证书准备
将申请的SSL证书 .key结尾的重命名为:private.key和 .crt结尾的重命名为:public.crt 别问为什么,官方规定,不信自己看官方文档:https://min.io/docs/minio/linux/operations/network-encryption.html?ref=docs-redirect 然后将private.key和public.crt两个文件放到MinIO目录certs下面:/你的minio目录/config/certs,算了还是上个图吧
2.容器更改
创建容器命令更改为以下,注意,如果原来路径下有文件存在,把原来的minio容器删掉重新创建不会有影响!
docker run -d -p 9000:9000 -p 50000:50000 --name minio \ |
命令解释看文章:Docker部署MinIO
3.访问
控制台访问地址:https://minio.itze.cn:50000 API访问地址:https://minio.itze.cn 注意:这里如果直接访问API的访问地址,MinIO会307默认跳转到控制台页面,控制台登录页面我们当然不想让外部知道,上面的nginx_minio.conf已经做了错误页面配置,如果你的不生效,请检查nginx的默认配置文件nginx.conf中有没有以下一句话:同样放到http{}块中即可,记得重启nginx服务
proxy_intercept_errors on; |
重点注意事项
这里稍微解释一个命令:-e “MINIO_SERVER_URL=https://minio.itze.cn “ 这也是上面nginx里面为什么会那样配置的原因 这个地址是MioIO API访问请求的地址,这里创建容器时是什么,无论在MinIO控制台或者是通过API代码分享的文件链接的前缀就是这个!,这里为什么我们直接写成了域名,而不是网上大部分说的IP+端口号,原因就是文章上面的nginx_minio.conf已经做了反向代理,访问https://minio.itze.cn 就等于访问 https://123.123.123.123:9000 明白了吗 但是如果浏览器直接访问后面这个IP+端口的浏览器会报SSL证书不安全,因为我们签发证书是对minio.itze.cn这个域名主题 MINIO_SERVER_URL等于什么下面分享链接的红色字体就是什么,如果你用的是服务器的外网域名+端口,下面就是IP:端口号,如果硬是改成域名访问会报错