Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何在 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" runLightsail 名稱伺服器:
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.crtApache,方法 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.crtNGINX,方法 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.crtNGINX,方法 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 startApache,方法 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 startNGINX,方法 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 startNGINX,方法 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 重新導向。
相關內容
- 已提問 1 年前
- 已提問 2 年前
