使用 Certbot 为 MinIO 生成 Let’s Encrypt 证书
Let’s Encrypt 是一个新的免费、自动化且开源的证书颁发机构(Certificate Authority)。
Certbot 是一个基于控制台的 Let’s Encrypt 证书生成工具。
在本教程中,我们将使用 Certbot 生成 Let’s Encypt 证书。随后将把该证书部署到 MinIO Server 中使用。
1. 前置条件
2. 依赖要求
- 在执行
certbot时,https 使用的 443 端口需要处于开放且可用状态。 - Certbot 执行时需要 root 访问权限,因为只有 root 可以绑定 1024 以下的端口。
- 本教程将使用我们自己的域名
myminio.com作为示例。请在你的环境中替换为你自己的域名。
3. 操作步骤
第 1 步:安装 Certbot
请按照 https://certbot.eff.org/ 上的文档安装 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 Server 上配置 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
第 5 步:更改证书的所有权。
$ sudo chown user:user /home/user/.minio/certs/private.key
$ sudo chown user:user /home/user/.minio/certs/public.crt
第 6 步:使用 HTTPS 启动 MinIO Server。
如果你不打算以 root 权限运行 MinIO,则需要通过以下命令为 MinIO 赋予监听小于 1024 端口的能力:
sudo setcap 'cap_net_bind_service=+ep' ./minio
现在,你可以在 “443” 端口上启动 MinIO Server。
$ ./minio server --address ":443" /mnt/data
如果你使用的是 MinIO 的 dockerized 版本,那么你需要
$ sudo docker run -p 443:443 -v /home/user/.minio:/root/.minio/ -v /home/user/data:/data minio/minio server --address ":443" /data
第 7 步:在浏览器中访问 https://myminio.com。

本页部分内容改编自 MinIO 对象存储文档,© 2020–至今 MinIO, Inc.,依据 CC BY 4.0 授权,由 Silo 项目转换与维护。归属与署名
本页为非官方中文翻译。如与英文原文有出入,以英文原文为准。