使用TLS安全的访问Minio服务


官方文档地址:http://docs.minio.org.cn/docs/master/how-to-secure-access-to-minio-server-with-tls

查看这篇文章的操作步骤也可以:

前提条件

有正在运行的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\\.minio\certs\CAs Windows).