文件

使用 Certbot 為 MinIO 產生 Let’s Encrypt 憑證 Slack

Let’s Encrypt 是一個新的免費、自動化且開源的憑證授權機構。

Certbot 是一個基於主控台的 Let’s Encrypt 憑證產生工具。

在本食譜中,我們將使用 Certbot 產生 Let’s Encrypt 憑證。然後將部署此憑證以在 MinIO 伺服器中使用。

1. 先決條件

  • 此處 安裝 MinIO 伺服器。

  • 此處 安裝 Certbot

2. 相依性

  • 執行 certbot 時,需要開啟並可用的 https 的 443 連接埠。

  • Certbot 在執行時需要 root 存取權,因為只有 root 才能繫結到 1024 以下的任何連接埠。

  • 我們將在本食譜中使用我們自己的網域 myminio.com 作為範例。在您的設定下,請替換為您自己的網域。

3. 食譜步驟

步驟 1:安裝 Certbot

按照 https://certbot.dev.org.tw/ 的文件安裝 Certbot

步驟 2:產生 Let’s Encrypt 憑證

# certbot certonly --standalone -d myminio.com --staple-ocsp -m test@yourdomain.io --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 產生的憑證和金鑰需要放置在使用者的主目錄中。

$ 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

步驟 7:在瀏覽器中造訪 https://myminio.com

Letsencrypt