如何在 Lightsail 上託管的 Bitnami 堆疊中安裝萬用字元 Let's Encrypt SSL 憑證?
我想在具有 Bitnami 堆疊的 Amazon Lightsail 執行個體中為網站安裝萬用字元 SSL 憑證。
簡短描述
如需有關如何安裝不同執行個體藍圖或標準憑證的相關資訊,請參閱下列 AWS 知識中心文章:
- 如何在 Lightsail 執行個體中安裝標準的 Let's Encrypt SSL 憑證?此解決方案包括 Amazon Linux 2 和 Ubuntu 等執行個體。
- 如何在 Amazon Lightsail 上託管的 Bitnami 堆疊中安裝 Let's Encrypt SSL 憑證?此解決方案包括 WordPress、LAMP 和 Magento 等執行個體。
- 如何在 Amazon Lightsail 中安裝萬用字元 Let's Encrypt SSL 憑證?此解決方案包括 Amazon Linux 2 和 Ubuntu 等執行個體。
解決方法
在 Bitnami 託管的 Lightsail 執行個體上安裝萬用字元 Let's Encrypt SSL 憑證的步驟取決於您網域使用的 DNS 供應商。檢查您的 DNS 供應商是否列在 Lego 網站上 DNS 供應商中。然後,選取要使用的適當方法:
- 如果您的網域使用其中一個列出的 DNS 供應商,請使用 Bitnami 提供的 Lego 工具。
- 如果您的網域沒有使用其中一個列出的 DNS 供應商,請使用 Certbot 套件。
**注意:**檔案路徑可能會變更,這取決於 Bitnami 堆疊是否使用原生 Linux 系統套件 (方法 A) 還是獨立安裝 (方法 B)。最新的 Bitnami WordPress 藍圖僅適用於方法 A。
若要識別 Bitnami 安裝類型,請執行下列命令:
test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."
Lego 工具
Bitnami 提供了 bncert-tool 和 Lego 工具。Lego 工具支援建立萬用字元 SSL 憑證。bncert-tool 不支援建立萬用字元 SSL 憑證。
**注意:**在下列範例中,DNS 供應商是 Amazon Route 53 和 Amazon Lightsail。
若要使用 Lego 工具安裝萬用字元 Let's Encrypt SSL 憑證,請完成下列步驟:
-
建立具有程式存取權的 AWS Identity and Access Management (IAM) 使用者。若要確定 Lego 完成 DNS 挑戰所需的 IAM 使用者許可,請參閱 Lego 網站上的 IAM 政策範例。
-
若要在 nano 編輯器中開啟 /root/.aws/credentials 檔案,請執行下列命令:
sudo mkdir /root/.aws sudo nano /root/.aws/credentials
-
在憑證檔案上輸入下列行:
[default] aws_access_key_id = AKIA************E aws_secret_access_key = 1yop**************************l region = us-east-1
**注意:**將 aws_access_key_id 和 aws_secret_access_key 取代為您的值。將 us-east-1 取代為您的 Lightsail 執行個體的 AWS 區域。
-
若要儲存檔案,請依次按 Ctrl + X 鍵、y 鍵和 ** Enter** 鍵。
-
如果您的 Bitnami 執行個體未包含 /opt/bitnami/letsencrypt/ 目錄,請執行下列命令以手動安裝 Lego 用戶端:
cd /tmp curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i - -O lego.tar.gz tar xzf lego.tar.gz sudo mkdir -p /opt/bitnami/letsencrypt sudo mv lego /opt/bitnami/letsencrypt/lego
-
若要在伺服器中建立萬用字元 Let's Encrypt 憑證,請根據您的伺服器類型執行下列命令:
Route 53 名稱伺服器:sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns route53 --path="/opt/bitnami/letsencrypt" run
Lightsail 名稱伺服器:
sudo DNS_ZONE=DOMAIN /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns lightsail --path="/opt/bitnami/letsencrypt" run
注意:將 EMAIL-ADDRESS 取代為您想要接收憑證更新的電子郵件地址。將 DOMAIN 取代為您的網域名稱。
SSL 憑證和私有金鑰在下列位置產生:/opt/bitnami/letsencrypt/certificates/DOMAIN.crt 或 /opt/bitnami/letsencrypt/certificates/DOMAIN.key。 -
若要停止 Bitnami 堆疊服務,請執行下列命令:
sudo /opt/bitnami/ctlscript.sh stop
-
根據您的伺服器和方法,將 SSL 憑證和憑證金鑰檔案連結至 Web 伺服器目前讀取的位置:
Apache,方法 Asudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/bitnami/certs/server.key sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt
Apache,方法 B
sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old sudo mv /opt/bitnami/apache2/conf/server.csr /opt/bitnami/apache2/conf/server.csr.old sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/server.key sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/server.crt
NGINX,方法 A
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/bitnami/certs/server.key sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt
NGINX,方法 B
sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old sudo mv /opt/bitnami/nginx/conf/server.csr /opt/bitnami/nginx/conf/server.csr.old sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/server.key sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/server.crt
**注意:**對於上述命令,請將 DOMAIN 取代為您的網域名稱。
-
若要啟動 Bitnami 堆疊服務,請執行下列命令:
sudo /opt/bitnami/ctlscript.sh start
-
若要自動續約憑證,請執行下列命令以開啟 crontab 編輯器:
sudo crontab -e -u bitnami
**注意:**Let's Encrypt 憑證有效期為 90 天。
在 crontab 檔案上輸入下列行,然後儲存檔案:
Apache
0 0 * * * sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns DNS renew >> /var/log/letsencrypt.log 2>&1 && sudo /opt/bitnami/apache/bin/httpd -f /opt/bitnami/apache/conf/httpd.conf -k graceful
Nginx
0 0 * * * sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns DNS renew >> /var/log/letsencrypt.log 2>&1 && sudo /opt/bitnami/nginx/sbin/nginx -c /opt/bitnami/nginx/conf/nginx.conf -s reload
**注意:**將 EMAIL-ADDRESS、DOMAIN 和 DNS 取代為您的值。 設定 HTTPS 重新導向。如需詳細資訊,請參閱 Bitnami 網站上的使用 Apache 強制 HTTPS 重新導向和使用 NGINX 強制 HTTPS 重新導向。
Certbot 套件
先決條件:
- 安裝 Certbot。
- 確定您的 Linux 發行版。對於 Bitnami 託管的執行個體,Linux 發行版是 Debian 或 Ubuntu。執行下列命令以確認您的 Linux 發行版:
**注意:**此方法不支援自動續約憑證。cat /etc/os-release | grep -i ^id
若要使用 Certbot 套件安裝萬用字元 Let's Encrypt SSL 憑證,請完成下列步驟:
-
啟動 Linux GNU Screen 工作階段。由於在網域的 DNS 供應商中新增 TXT 記錄需要時間,因此工作階段可能會逾時。最佳實務是在 Linux GNU Screen 中執行命令,以便工作階段不會逾時。若要啟動畫面工作階段,請執行下列命令:
screen -S letsencrypt
-
若要啟動 Certbot 互動模式,請執行下列命令:
sudo certbot certonly --manual --preferred-challenges dns -d example.com -d *.example.com
**注意:**將 example.com 取代為您的值。
如果您收到錯誤回應,例如「找不到 bash: certbot: 命令」,則可能需要將 /bin/snap 新增至 PATH 環境變數。首先,輸入 "exit",然後按 Enter 鍵。或者,按 Ctrl + D 鍵以結束畫面工作階段。然後,編輯 /etc/environment,然後在清單中新增 /snap/bin。重新啟動您的系統。若要確認不再出現錯誤,請執行下列命令:$ certbot -h
-
複製 Let’s Encrypt 提供的 TXT 記錄。Let's Encrypt 提供您必須使用進行驗證的單一或多個 TXT 記錄。
-
在網域的 DNS 中新增提供的記錄。
重要: 在您確認 TXT 記錄已傳播至網際網路 DNS 之前,請勿按下 Enter 鍵。此外,請勿按 Ctrl + D 鍵,因為此動作會終止畫面工作階段。 -
若要確認記錄是否已傳播,請在 MxToolbox 網站上的 DNS 文字查詢中查詢 TXT 記錄:
_acme-challenge.example.com
**注意:**將 example.com 取代為您的值。
如果您的 TXT 記錄已傳播,您會在頁面上看到 TXT 記錄值。返回上一個畫面,然後按 Enter 鍵。 -
如果您已從 Shell 中移除,請執行下列命令以返回 Shell:
Screen -r SESSIONID
**注意:**執行 screen -ls 命令以取得工作階段 ID。
-
(選用) 如果出現提示,請重複上述步驟以新增另一個 TXT 記錄。
**注意:**如果您使用 Route 53 作為 DNS 供應商,則每列輸入一個 TXT 值。編輯 TXT 記錄,然後在新列中新增 certbot 提供的 TXT 值。 -
儲存 SSL 憑證和金鑰檔案的檔案位置。產生 SSL 憑證後,您會收到「已成功接收憑證」訊息。
-
若要將 Web 伺服器設定為使用憑證,請根據您的伺服器和方法執行下列命令:
Apache,方法 Asudo /opt/bitnami/ctlscript.sh stop sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/apache2/conf/bitnami/certs/server.key sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/bitnami/certs/server.crt sudo /opt/bitnami/ctlscript.sh start
Apache,方法 B
sudo /opt/bitnami/ctlscript.sh stop sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/apache2/conf/server.key sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/server.crt sudo /opt/bitnami/ctlscript.sh start
NGINX,方法 A
sudo /opt/bitnami/ctlscript.sh stop sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/bitnami/certs/server.key sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/bitnami/certs/server.crt sudo /opt/bitnami/ctlscript.sh start
NGINX,方法 B
sudo /opt/bitnami/ctlscript.sh stop sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/server.key sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/server.crt sudo /opt/bitnami/ctlscript.sh start
**注意:**對於上述命令,請將 DOMAIN 取代為您的網域名稱。
-
設定 HTTPS 重新導向。如需詳細資訊,請參閱 Bitnami 網站上的使用 Apache 強制 HTTPS 重新導向和使用 NGINX 強制 HTTPS 重新導向。
相關內容
- 已提問 10 個月前lg...
- 已提問 16 天前lg...
- AWS 官方已更新 7 個月前
- AWS 官方已更新 9 個月前
- AWS 官方已更新 1 年前