使用 Certbot 为 MinIO 生成 Let’s Encrypt 证书
Let’s Encrypt是一个新的免费、自动化且开源的证书颁发机构。
Certbot是一个基于控制台的 Let’s Encrypt 证书生成工具。
在本方案中,我们将使用 Certbot 生成 Let's Encrypt 证书。该证书随后将部署到 MinIO 服务器中使用。
1. 先决条件
2. 依赖项
在执行时,需要确保 443 端口对 https 保持开放且可用
certbot.Certbot 在执行时需要 root 权限,因为只有 root 用户才能绑定 1024 以下的端口。
我们将使用我们自己的域名
myminio.com作为本示例中的一个范例。请根据您的设置替换为您自己的域名。
3. 配方步骤
第一步:安装 Certbot
按照 https://certbot.eff.org/ 上的文档安装 Certbot
Step 2: 生成 Let’s Encrypt 证书
# certbot certonly --standalone -d myminio.com --staple-ocsp -m test@yourdomain.io --agree-tos
Step 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 生成的证书和密钥需要放置在用户的主目录中。
$ 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
Step 5: 更改证书所有权。
$ sudo chown user:user /home/user/.minio/certs/private.key
$ sudo chown user:user /home/user/.minio/certs/public.crt
步骤6:使用HTTPS启动MinIO服务器。
如果您不打算使用 MinIO 运行root要使用低于1024的端口,您需要通过以下命令赋予MinIO监听这些端口的权限:
sudo setcap 'cap_net_bind_service=+ep' ./minio
现在,您可以在端口“443”上启动 MinIO 服务器。
$ ./minio server --address ":443" /mnt/data
如果您使用的是 Docker 版本的 MinIO,那么您将需要
$ sudo docker run -p 443:443 -v /home/user/.minio:/root/.minio/ -v /home/user/data:/data minio/minio server --address ":443" /data
Step 7: 访问https://myminio.com在浏览器中。
