使用 Certbot 为 MinIO 生成 Let’s Encrypt 证书
Let’s Encrypt 是一个新的免费、自动且开源的证书颁发机构。
Certbot 是一个基于控制台的 Let’s Encrypt 证书生成工具。
在本指南中,我们将使用 Certbot 生成 Let’s Encrypt 证书。然后,此证书将被部署以供 MinIO 服务器使用。
1. 先决条件
2. 依赖项
执行
certbot
时,需要端口 443(用于 https)处于打开并可用的状态。执行 Certbot 需要 root 权限,因为只有 root 才能绑定到 1024 以下的任何端口。
在本指南中,我们将使用我们自己的域名
myminio.com
作为示例。请根据您的设置替换为您自己的域名。
3. 指南步骤
步骤 1:安装 Certbot
按照 http://certbot.openssl.ac.cn/ 上的文档安装 Certbot。
步骤 2:生成 Let’s Encrypt 证书
# certbot certonly --standalone -d myminio.com --staple-ocsp -m [email protected] --agree-tos
步骤 3:验证证书
列出保存在 /etc/letsencrypt/live/myminio.com
目录中的证书。
$ ls -l /etc/letsencrypt/live/myminio.com
total 4
lrwxrwxrwx 1 root root 37 Aug 2 09:58 cert.pem -> ../../archive/myminio.com/cert4.pem
lrwxrwxrwx 1 root root 38 Aug 2 09:58 chain.pem -> ../../archive/myminio.com/chain4.pem
lrwxrwxrwx 1 root root 42 Aug 2 09:58 fullchain.pem -> ../../archive/myminio.com/fullchain4.pem
lrwxrwxrwx 1 root root 40 Aug 2 09:58 privkey.pem -> ../../archive/myminio.com/privkey4.pem
-rw-r--r-- 1 root root 543 May 10 22:07 README
步骤 4:使用证书在 MinIO 服务器上设置 SSL。
通过 Certbot 生成的证书和密钥需要放置在用户的 home 目录中。
$ cp /etc/letsencrypt/live/myminio.com/fullchain.pem /home/user/.minio/certs/public.crt
$ cp /etc/letsencrypt/live/myminio.com/privkey.pem /home/user/.minio/certs/private.key
步骤 5:更改证书的所有者。
$ sudo chown user:user /home/user/.minio/certs/private.key
$ sudo chown user:user /home/user/.minio/certs/public.crt
步骤 6:使用 HTTPS 启动 MinIO 服务器。
如果您不打算使用 root
权限运行 MinIO,则需要使用以下命令授予 MinIO 监听 1024 以下端口的能力
sudo setcap 'cap_net_bind_service=+ep' ./minio
现在,您可以在端口“443”上启动 MinIO 服务器。
$ ./minio server --address ":443" /mnt/data
如果您使用的是 MinIO 的 Docker 版本,则需要
$ sudo docker run -p 443:443 -v /home/user/.minio:/root/.minio/ -v /home/user/data:/data minio/minio server --address ":443" /data