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.
如何在 Amazon Lightsail 中安裝萬用字元 Let's Encrypt SSL 憑證?
我想在 Amazon Lightsail 執行個體中為我的網站安裝萬用字元 SSL 憑證。
簡短說明
針對託管在沒有 Bitnami 堆疊的 Lightsail 執行個體中的網站,下列解決方法涵蓋了萬用字元 Let's Encrypt SSL 憑證的安裝。這些執行個體藍圖的範例包括 Amazon Linux 2 或 Ubuntu。如果您有不同的執行個體藍圖或想要安裝標準的憑證,請參閱下列其中一項:
- 若要在沒有 Bitnami 堆疊的 Lightsail 執行個體中安裝標準的 Let's Encrypt SSL 憑證 (不是萬用字元),例如 Amazon Linux 2 或 Ubuntu,請參閱如何在 Lightsail 執行個體中安裝標準的 Let's Encrypt SSL 憑證?
- 若要在具有 Bitnami 堆疊的 Lightsail 執行個體中安裝標準的 Let's Encrypt SSL 憑證 (不是萬用字元),例如 WordPress、LAMP 或 Magento,請參閱如何在 Lightsail 上託管的 Bitnami 堆疊中安裝標準的 Let's Encrypt SSL 憑證?
- 若要在具有 Bitnami 堆疊的 Lightsail 執行個體中安裝萬用字元 Let's Encrypt 憑證,例如 WordPress、LAMP、Magento 或 MEAN,請參閱如何在 Lightsail 上託管的 Bitnami 堆疊中安裝萬用字元 Let's Encrypt SSL 憑證?
解決方法
**注意事項:**開始之前,請安裝 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 服務文件。
相關內容
- 已提問 1 年前
- 已提問 1 年前
