如何在 Lightsail 執行個體中安裝標準的 Let's Encrypt SSL 憑證?

上次更新日期:2021-10-20

如何在未使用 Bitnami 堆疊的 Amazon Lightsail 執行個體所託管的網站中安裝標準 SSL 憑證?

簡短描述

以下解決方案可為不使用 Bitnami 堆疊的 Lightsail 執行個體中所託管的網站安裝標準的 Let's Encrypt SSL 憑證。這些執行個體包括 Amazon Linux 2、Ubuntu 等執行個體。如果您有不同的執行個體藍圖或想要安裝標準憑證,請參閱下列任一種憑證:

標準 Let's Encrypt 憑證

如需如何在具有 Bitnami 堆疊的 Lightsail 執行個體 (例如 WordPress、LAMP、Magento 等) 中安裝標準 Let's Encrypt SSL 憑證 (非萬用字元) 的相關資訊,請參閱如何在 Amazon Lightsail 上託管的 Bitnami 堆疊中安裝標準 Let's Encrypt SSL 憑證?

萬用字元 Let's Encrypt 憑證 (例如,*.example.com)

如需如何在含 Bitnami 堆疊的 Lightsail 執行個體 (例如 WordPress、LAMP、Magento、MEAN 等) 中安裝萬用字元 Let's Encrypt 憑證的相關資訊,請參閱如何在 Amazon Lightsail 上託管的 Bitnami 堆疊中安裝萬用字元 Let's Encrypt SSL 憑證?

如需如何在未使用 Bitnami 堆疊的 Lightsail 執行個體 (例如 Amazon Linux 2、Ubuntu 等) 上安裝萬用字元 Let's Encrypt 憑證的相關資訊,請參閱如何在 Amazon Lightsail 中安裝萬用字元 Let's Encrypt SSL 憑證?

解決方案

先決條件和限制

  • 下列步驟可在伺服器中安裝憑證。您必須手動完成額外步驟,例如設定憑證以及設定 HTTPS 重新引導。
  • 請確定網域直接或透過負載平衡器或散佈指向 Lightsail 執行個體。若要完成憑證驗證,請確保網站 URL 不會傳回負載平衡器或網頁瀏覽器散佈的錯誤。

注意:此方法需要先安裝 Certbot 工具。如需安裝說明,請參閱如何在 Lightsail 執行個體中安裝 Certbot 套件,以便安裝 Let's Encrypt?

1.    停止執行個體中執行的 Web 服務。以下是適用於不同 Linux 發行版的範例命令:

Amazon Linux2、CentOS 等 Linux 發行版中的 Apache Web 服務

sudo service httpd stop

Ubuntu、Debian 等 Linux 發行版中的 Apache Web 服務

sudo service apache2 stop

NGINX Web 服務

sudo service nginx stop

2.    執行下列命令以安裝 SSL 憑證。請務必將 example.com 換成您的網域。

sudo certbot certonly --standalone -d example.com -d www.example.com

系統成功產生 SSL 憑證之後,您會收到訊息「成功收到憑證」。訊息中也會提供憑證和金鑰檔案的位置。將這些檔案位置儲存到記事本,以供步驟 5 使用。

3.    啟動 Web 服務。以下是適用於不同 Linux 發行版的範例命令:

Amazon Linux 2、CentOS 等 Linux 發行版中的 Apache Web 服務

sudo service httpd start

Ubuntu、Debian 等 Linux 發行版中的 Apache Web 服務

sudo service apache2 start

NGINX Web 服務

sudo service nginx start

4.    設定自動憑證更新。

如果使用 snapd 安裝 Certbot 套件,則 systemd 計時器或 cronjob 中會自動設定更新。不過,因為必須先停止 Web 服務才能執行 Certbot 命令,因此您必須自動化停止和啟動 Web 服務的作業。若要設定此自動化,請執行下列命令。下例使用 Apache2 作為 Web 服務。根據您的 Web 服務來替換程式碼和停止-啟動命令。

sudo sh -c 'printf "#!/bin/sh\n service apache2 stop \n" > /etc/letsencrypt/renewal-hooks/pre/webservice.sh'
sudo sh -c 'printf "#!/bin/sh\n service apache2 start \n" > /etc/letsencrypt/renewal-hooks/post/webservice.sh'
sudo chmod 755 /etc/letsencrypt/renewal-hooks/*/webservice.sh

如果 Linux 發行版是 Amazon Linux 2 或 FreeBSD,則不會使用 snapd 安裝 Certbot 套件。在此情況下,您必須執行下列命令,以手動方式設定更新。下例使用 Apache2 作為 Web 服務。根據您的 Web 服務來替換程式碼和停止-啟動命令。

echo "30 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew --pre-hook 'service apache2 stop' --post-hook 'service apache2 start'" | sudo tee -a /etc/crontab > /dev/null

5.     系統只完成了憑證安裝和更新設定程序。您還是必須設定 Web 伺服器以使用此憑證,並設定 HTTPS 重新引導。此組態會因您在執行個體中的 Web 伺服器設定而有所不同。如需完成這些步驟的說明,請參閱您的 Web 服務的官方說明文件。


此文章是否有幫助?


您是否需要帳單或技術支援?