minio通过自己生成证书开启tls访问

按照官方文档操作开启tls最简单的方式就是使用certgen直接生成一对证书密钥,例如:

(https://min.io/docs/minio/linux/operations/network-encryption.html?ref=docs-redirect),

certgen -host "10.121.10.11"

将生成的private.key和public.crt文件放到默认启动minio用户根目录的~/.minio/certs中即可

这里记录的情况主要是为了让证书能通过校验,不要抛类似错误“mc: <ERROR> Unable to initialize new alias from the provided credentials. Get "https://10.121.10.11:9527": tls: failed to verify certificate: x509: certificate signed by unknown authority.”,为了杜绝此类异常,官方也给了解决方法,就是将证书签发使用的根证书放置到~/.minio/certs/CAs中,形式如下,目录和文件名称要和示例一样:

# ls -R ~/.minio/certs/
/root/.minio/certs/:
CAs private.key public.crt

/root/.minio/certs/CAs:
myCA.crt

这里单独生成证书而不直接使用certgen的原因是这个工具不会导出ca:
openssl genrsa -out ca.key 2048
openssl req -new -x509 -days 365 -key ca.key -subj /C=CN/ST=SX/O=IT/OU=Test/CN=RootCA -out myCA.crt

openssl req -newkey rsa:2048 -nodes -keyout private.key -subj /C=CN/ST=SX/O=IT/OU=Test/CN=Test -out public.csr
openssl x509 -req -extfile <(printf "subjectAltName=IP:10.132.10.11") -days 365 -in public.csr -CA myCA.crt -CAkey ca.key -CAcreateserial -out public.crt

 

部署目录如下:
scp -P 22 myCA.crt root@10.121.10.11:/root/.minio/certs/CAs/
scp -P 22 public.crt private.key root@10.121.10.11:/root/.minio/certs/

 

顺便也记录下minio启动脚本:

# cat start.sh
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=password
nohup ./minio server ../data --address "10.121.10.11:9527" &

启动之后,通过mc添加alias的时候就能验证是否配置正常,异常时会抛下面这种错误

./mc alias set myminio/ https://10.121.10.11:9527 admin password
Fingerprint of myminio public key: ed501e0afb32f8b2f17fb927e1e70eb27d4860f2dbfe288bd2216a19bc50b571
Confirm public key y/N: y
mc: <ERROR> Unable to initialize new alias from the provided credentials. Get "https://10.121.10.11:9527/probe-bsign-ai6kqmm2cw6vwoct6oyudgkfw1r4u5/?location=": tls: failed to verify certificate: x509: certificate signed by unknown authority.

正常时会返回成功

./mc alias set myminio/ https://10.121.10.11:9527 admin password
Added myminio successfully.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据