官方文档地址:http://docs.minio.org.cn/docs/master/how-to-secure-access-to-minio-server-with-tls
查看这篇文章的操作步骤也可以:https://www.cnblogs.com/sanduzxcvbnm/p/15984780.html
前提条件
有正在运行的Minio服务
# 容器方式运行 配置证书访问查看这篇文章 :https://www.cnblogs.com/sanduzxcvbnm/p/15984957.html
mkdir -p /mnt/{data,config}
docker run -d -p 9000:9000 -p 9001:9001 --name minio1 \
-e "MINIO_ACCESS_KEY=admin" \
-e "MINIO_SECRET_KEY=12345678" \
-v /mnt/data:/data \
-v /mnt/config:/root/.minio \
minio/minio server /data --console-address ":9001"
# 这里使用二进制方式运行
mkdir -p /mnt/data
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /mnt/data --console-address ":9001"
配置已存在的证书
如果你已经有私钥和公钥证书,你需要将它们拷贝到Minio的config/certs文件夹,分别取名为private.key 和 public.crt。
如果这个证书是被证书机构签发的,public.crt应该是服务器的证书,任何中间体的证书以及CA的根证书的级联。
生成证书 (Linux)
Minio在Linux只支持使用PEM格式的key/certificate。
生成证书的方式有多种,这里选择使用 OpenSSL:
cd ~/.minio/certs/
# 生成私钥
openssl genrsa -out private.key 2048
# 生成自签名证书
openssl req -new -x509 -days 3650 -key private.key -out public.crt -subj "/C=US/ST=state/L=location/O=organization/CN=domain"
编辑文件 /etc/pki/tls/openssl.cnf
找到 [ v3_ca ]
新增一行:subjectAltName=IP:192.168.20.102
(宿主机IP不是容器IP)
不编辑openssl.cnf文件的后果就是:minio控制台登录不了
验证
# 重启服务
ps -ef|grep "minio "
kill掉进程后再启动
http访问出现如下提示:
https访问:
容器启动的minio,登录的时候报错如下:Post "https://172.17.0.2:9000/": x509: certificate is valid for 192.168.20.102, not 172.17.0.2
就算编辑openssl.cnf文件,填写容器IP也是不行,因此只能使用二进制运行的方式
安装第三方CAs
Minio可以配置成连接其它服务,不管是Minio节点还是像NATs、Redis这些。如果这些服务用的不是在已知证书机构注册的证书,你可以让Minio服务信任这些CA,怎么做呢,将这些证书放到Minio配置路径下(~/.minio/certs/CAs/
Linux 或者 C:\Users\<Username>\.minio\certs\CAs
Windows).