我想在 Amazon Lightsail 執行個體中為我的網站安裝萬用字元 SSL 憑證。
簡短說明
針對託管在沒有 Bitnami 堆疊的 Lightsail 執行個體中的網站,下列解決方法涵蓋了萬用字元 Let's Encrypt SSL 憑證的安裝。這些執行個體藍圖的範例包括 Amazon Linux 2 或 Ubuntu。如果您有不同的執行個體藍圖或想要安裝標準的憑證,請參閱下列其中一項:
解決方法
**注意事項:**開始之前,請安裝 Certbot 工具。如需安裝指示,請參閱如何在 Lightsail 執行個體中安裝 Certbot 套件以進行 Let's Encrypt 憑證安裝?
在 Lightsail 執行個體上安裝萬用字元 Let's Encrypt SSL 憑證的方法取決於網域的 DNS 提供者。若要開始,請驗證您的 DNS 提供者是否出現在 Certbot 網站的 DNS 外掛程式中。下列方法說明如何在伺服器中安裝憑證。您必須手動完成其他步驟。例如,您必須將伺服器設定為使用憑證,並且必須設定 HTTPS 重新導向。
如果您的網域使用其中一個列出的 DNS 提供者
在下列範例中,DNS 提供者為 Amazon Route 53。如需其他支援的 DNS 提供者的指示,請參閱 Certbot 網站上的 DNS 外掛程式。
-
建立具有程式化存取權的 AWS Identity and Access Management (IAM) 使用者。如需 Certbot 完成 DNS 挑戰所需的最低 IAM 使用者許可,請參閱 Certbot 網站上的 certbot-dns-route-53。
-
若要在 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
**注意事項:**將 aws_access_key_id 取代為步驟 1 中建立的存取金鑰 ID。
-
若要儲存檔案,請按 Ctrl + X,然後按 Y,最後按 ENTER 鍵。
-
在伺服器中建立 Let's Encrypt 憑證。如果您的網域使用 Amazon Route 53 作為 DNS 提供者,請執行下列命令:
sudo certbot certonly --dns-route53 -d example.com -d *.example.com
**注意事項:**將 example.com 取代為網域名稱。
-
Certbot 產生 SSL 憑證之後,您會收到已順利收到憑證的訊息。同時會提供憑證和金鑰檔案位置。將這些檔案位置複製到文字檔案以用於步驟 8。
-
設定自動憑證續約。
如果使用 snapd 來安裝 Certbot 套件,則會在系統計時器或 cronjob 中會自動設定續約。
如果作業系統發行版是 Amazon Linux 2 或 FreeBSD,則不會使用 snapd 來安裝 Certbot 套件。若要手動設定續約,請執行下列命令:
echo "30 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" | sudo tee -a /etc/crontab > /dev/null
-
您現在已安裝憑證並設定續約。但是,您仍然必須設定 Web 伺服器以使用此憑證,並且必須設定 HTTPS 重新導向。組態取決於執行個體的 Web 伺服器設定。如需組態指示,請參閱 Web 服務文件。
如果您的網域沒有使用其中一個列出的 DNS 提供者
**注意事項:**此方法不支援自動憑證續約。
在下列步驟中,您會在網域的 DNS 提供者中新增 TXT 記錄。這個程序可能會花費一些時間。最佳實務是在 Linux GNU Screen 中執行命令,以防止工作階段逾時。
-
若要啟動 Screen 工作階段,請輸入下列命令:
screen -S letsencrypt
-
若要在互動模式下啟動 Certbot,請輸入下列命令。此命令會告訴 Certbot 使用具有 DNS 挑戰的手動授權方法來驗證網域擁有權。
sudo certbot certonly --manual --preferred-challenges dns -d example.com -d *.example.com
**注意事項:**將 example.com 取代為網域名稱。
-
Certbot 會提示您將 TXT 記錄新增至網域的 DNS 記錄。此動作會驗證您是否擁有指定的網域。Let's Encrypt 會提供一個或多個 TXT 記錄以用於驗證。
-
您在畫面上看到 TXT 記錄時,請將提供的記錄新增至網域的 DNS。**注意事項:**在確認 TXT 記錄已傳送到網際網路 DNS 之前,請勿按 ENTER 鍵。請勿按 Ctrl + D,因為該動作會終止目前的畫面工作階段。
-
若要確認 TXT 記錄是否已傳送到網際網路 DNS,請在 MX Toolbox 網站上的 DNS 文字查詢對該記錄進行查詢。若要執行檢查,請將下列文字輸入至文字方塊,然後選擇 TXT 查詢:
_acme-challenge.example.com
**注意事項:**將 example.com 取代為網域名稱。
-
如果您的 TXT 記錄已傳送到網際網路 DNS,您會在頁面上看到 TXT 記錄值。返回該畫面,然後按 Enter 鍵。
**注意事項:**如果已從 Shell 將您移除,則請使用命令 screen -r SESSIONID 以返回該畫面。若要尋找工作階段 ID,請執行 screen -ls 命令。
-
如果 Certbot 提示要求您新增其他 TXT 記錄,則請重複步驟 4–6。
-
Certbot 產生 SSL 憑證之後,您會收到已順利收到憑證的訊息。同時會提供憑證和金鑰檔案位置。將這些檔案位置複製到文字檔案以用於步驟 9。
-
您現在已安裝憑證並設定續約。但是,您仍然必須設定 Web 伺服器以使用此憑證,並且必須設定 HTTPS 重新導向。組態取決於執行個體的 Web 伺服器設定。如需組態指示,請參閱 Web 服務文件。