官方文档参考:https://min.io/docs/minio/linux/operations/network-encryption.html
添加证书有两个目的:
第一,可以实现加密通讯,服务器之间以及服务器和客户端之间通讯即使被监听,也不能获取到明文数据;
第二,集群设备相互之间做验证,合法的签名证书才能和minio集群通讯
此文章基于之前部署的minio集群来修改,先按照前期文章:https://www.madbull.site/?p=1094 做好集群后,再进行修改。
第一步,颁发证书
本次文章自建CA根证书,以自建证书给各个子节点颁发服务端证书。
参看这篇文章:https://www.madbull.site/?p=1111 自建根证书,并用此根证书给三个设备分别颁发证书。
注意:在创建服务端证书时,用到的 csr.conf 文件中,commonName 和 alt_names 配置要根据自己的实际情况做相应修改。
第二步,修改配置文件
修改 /etc/minio/minio.conf 文件,把 http 改成 https 增加配置项 MINIO_OPTS 指定证书路径。

第三步,安装证书
把第一步申请的服务端私钥、服务端证书 和 CA根证书,放在 --certs-dir
参数指定的目录。目录结构如下,并确保文件对minio用户可读。

注意:三台设备用到的根证书,也就是 CAs/myCA.crt 是同一个,但是 服务端私钥和服务端证书则各不相同。
最后重启 三台设备的 minio 就可以。systemctl restart minio.service
扩展
myCA.crt 是用来验证对方的证书是否合法的,例如 node1 访问 node2,node2 把 public.crt 推送给 node1 ,node1用系统信任的证书或者用指定目录的证书(在本文章是 certs/CAs/myCA.crt 文件)对证书做验证,通过了,则继续会话。所以,可以直接把 myCA.crt 加载到系统信任的证书里,具体参考 https://www.madbull.site/?p=601 文章的 3.1~3.3 方法。
发表回复