本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:搭配 Lightsail WordPress 執行個體使用加密 SSL 憑證
提示
Lightsail 提供引導式工作流程,可自動執行個體上「讓我們加密」憑證的安裝和設定。 WordPress 我們強烈建議您使用工作流程,而不要遵循本教學課程中的手動步驟。如需詳細資訊,請參閱啟動和設定 WordPress 執行個體。
透過使用 Lightsail 負載平衡器,亞馬遜 Lightsail 可以透過 SSL/TLS 輕鬆保護您的網站和應用程式。但是,使用 Lightsail 負載平衡器通常不是正確的選擇。或許您的網站不需要負載平衡器提供的可擴展性或容錯能力,或者您是要最佳化成本。在後者的情況中,您可能會考量使用 Let's Encrypt 以取得免費的 SSL 憑證。若是如此,則無問題。您可以將這些憑證與 Lightsail 執行個體整合。
透過本指南,您將學習如何使用 Certbot 申請讓我們加密萬用字元憑證,並使用真正簡單的 SSL 外掛程式將其與您的 WordPress 執行個體整合。
-
Bitnami 執行個體所使用的 Linux 發行版本已在 2020 年 7 月從 Ubuntu 變更為 Debian。由於這項變更,本教學課程中的部分步驟會根據執行個體的 Linux 發行版本而有所不同。變更後才建立的所有 Bitnami 藍圖執行個體均會使用 Debian Linux 發行版本。在變更之前建立的執行個體將繼續使用 Ubuntu Linux 發行版本。若要檢查執行個體的分發,請執行
uname -a
命令。該回應會將執行個體的 Linux 發行版本顯示為 Ubuntu 或 Debian。 -
Bitnami 已經修改了許多堆棧的文件結構。本教學課程中的檔案路徑可能會根據您的 Bitnami 堆疊是否使用原生 Linux 系統套件 (方法 A),或是否為獨立安裝 (方法 B) 而變更。若要識別您的 Bitnami 安裝類型以及要遵循的方法,請執行下列命令
test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."
內容
開始之前
開始本教學課程之前,您應該考量下列事項:
改用 Bitnami HTTPS 組態 (bncert
) 工具
本教學課程介紹了如何透過手動程序來實作 SSL/TLS 憑證。但是,Bitnami 提供了一個更自動化的過程,它使用了 Bitnami HTTPS 配置(bncert
)工具,該工具通常預先安裝在 Lightsail 中的實例上 WordPress。我們強烈建議您使用該工具,而非依照本教學課程中的手動步驟。本教學課程是在 bncert
工具可供使用之前完成。如需有關使用此bncert
工具的詳細資訊,請參閱在 Amazon Lightsail 中在 WordPress執行個體上啟用 HTTPS。
識別執行個體的 Linux 發 WordPress行版本
Bitnami 執行個體所使用的 Linux 發行版本已在 2020 年 7 月從 Ubuntu 變更為 Debian。變更後才建立的所有 Bitnami 藍圖執行個體均會使用 Debian Linux 發行版本。在變更之前建立的執行個體將繼續使用 Ubuntu Linux 發行版本。由於這項變更,本教學課程中的部分步驟會根據執行個體的 Linux 發行版本而有所不同。您必須識別執行個體的 Linux 發行版本,以便您知道本教學課程中要使用哪些步驟。若要識別執行個體的 Linux 發行版本,請執行 uname -a
命令。該回應會將執行個體的 Linux 發行版本顯示為 Ubuntu 或 Debian。
確定適用於您的執行個體之教學課程
Bitnami 正在修改其許多堆疊的檔案結構。本教學課程中的檔案路徑可能會根據您的 Bitnami 堆疊是否使用原生 Linux 系統套件 (方法 A),或是否為獨立安裝 (方法 B) 而變更。若要識別您的 Bitnami 安裝類型以及要遵循的方法,請執行下列命令
test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A:
Using system packages." || echo "Approach B: Self-contained
installation."
步驟 1:完成先決條件
請先完成事前準備 (若尚未完成):
-
在 Light WordPress sail 中建立實體。若要進一步了解,請參閱建立執行個體。
-
註冊網域名稱,並取得管理存取以編輯其 DNS 記錄。若要進一步了解,請參閱 DNS。
建議您使用 Lightsail DNS 區域管理網域的 DNS 記錄。若要進一步了解,請參閱建立 DNS 區域以管理域的 DNS 記錄。
-
使用 Lightsail 主控台中以瀏覽器為基礎的 SSH 終端機來執行本教學課程中的步驟。然而,您也可以使用自己的 SSH 用戶端,例如 PuTTY。若要進一步了解如何設定 PuTTY,請參閱在 Amazon Lightsail 中下載和設定 PuTTY 以使用 SSH 進行連線。
完成先決條件後,請繼續前往本教學課程的下一節。
步驟 2:在您的執行個體上安裝 Certbot
Certbot 是一種用戶端,用於從 Let’s Encrypt 請求憑證並將其部署至 Web 伺服器。Let's Encrypt 使用 ACME 協助發出憑證,而 Certbot 是一種啟用 ACME 的用戶端,可與 Let's Encrypt 互動。
若要在您的執行個體上安裝切爾特博特
-
登入主 Li ghtsail 台
。 -
在 Lightsail 首頁上,針對您要連線的執行個體選擇安全殼層快速連線圖示。
-
連線 Lightsail 瀏覽器型 SSH 工作階段之後,請輸入下列命令來更新執行個體上的套件:
sudo apt-get update
-
輸入下列命令以安裝軟體屬性套件。Certbot 的開發人員使用個人套件存檔 (PPA) 分發 Certbot。軟體屬性套件可讓 PPA 的使用更有效率。
sudo apt-get install software-properties-common
注意
如果您在執行
Could not get lock
命令時遭遇sudo apt-get install
錯誤,請等待大約 15 分鐘後再試一次。此錯誤可能是由使用 Apt 套件管理工具安裝自動升級的 cron 任務所引起的。 -
輸入下列命令以安裝 GPG 套件,並新增 Certbot 至本機 apt 儲存庫:
注意
步驟 5 僅適用於使用 Ubuntu Linux 發行版本的執行個體。如果您的執行個體使用 Debian Linux 發行版本,請略過此步驟。
sudo apt-get install gpg -y
sudo apt-add-repository ppa:certbot/certbot -y
-
輸入下列命令更新 apt 以包含新的儲存庫:
sudo apt-get update -y
-
輸入下列命令以安裝 Certbot:
sudo apt-get install certbot -y
現在,Certbot 已安裝在您的執行個體上。
-
讓瀏覽器型 SSH 終端機視窗保持開啟 - 稍後您會在此教學課程中回到此處。繼續前往本教學課程的下一節。
步驟 3:請求 Let’s Encrypt SSL 萬用字元憑證
開始從 Let’s Encrypt 請求憑證的程序。使用 Certbot (請求萬用字元憑證) 可讓您針對網域及其子網域使用單一憑證。例如,單一萬用字元憑證適用於 example.com
頂層網域,以及 blog.example.com
、stuff.example.com
子網域。
請求 Let’s Encrypt SSL 萬用字元憑證
-
在與本教學課程步驟 2 使用的相同瀏覽器型 SSH 終端機視窗中,輸入下列命令為您的網域設定環境變數。您現在可以更有效率複製和貼上命令以取得憑證。請務必以註冊的網域名稱取代
。domain
DOMAIN=
domain
WILDCARD=*.$DOMAIN
範例:
DOMAIN=
example.com
WILDCARD=*.$DOMAIN
-
輸入下列命令確認變數傳回正確的值:
echo $DOMAIN && echo $WILDCARD
您應該會看到類似以下的結果:
-
在互動式模式中輸入下列命令啟動 Certbot。此命令會通知 Certbot 使用手動授權方法搭配 DNS 查問以驗證網域所有權。這會為您的頂層網域及其子網域請求萬用字元憑證。
sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly
-
在提示時輸入您的電子郵件地址,這會用於續約和安全性注意事項。
-
閱讀 Let’s Encrypt 服務條款。完成時,如果您同意請按 A。如果您不同意,就無法取得 Let’s Encrypt 憑證。
-
根據分享您電子郵件地址的提示和關於您 IP 地址被記錄的警告做出回應。
-
Let’s Encrypt 現在會提示您確認您擁有所指定的網域。要這麼做,請新增 TXT 記錄至網域的 DNS 記錄。這會提供一組 TXT 記錄值,如以下範例所示:
注意
Let's Encrypt 可能會提供一或多個必須用於驗證的 TXT 記錄。在此範例中,我們有兩個 TXT 記錄可用於驗證。
-
讓 Lightsail 瀏覽器型 SSH 工作階段保持開啟狀態,您稍後會在本教學課程中回到該工作階段。繼續前往本教學課程的下一節。
步驟 4:新增 TXT 記錄至域的 DNS 區域
新增 TXT 記錄至網域的 DNS 區域可驗證您擁有網域。為了進行示範,我們使用 Lightsail DNS 區域。然而,通常由網域註冊商託管的其他 DNS 區域可能會採取類似步驟。
注意
若要深入瞭解如何為您的網域建立 Lightsail DNS 區域,請參閱在 Lightsail 中建立 DNS 區域以管理網域的 DNS 記錄。
若要將 TXT 記錄新增至您網域的 DNS 區 Lightsail
-
選擇 Lightsail 首頁上的 Domains & DNS (網域和 DNS) 索引標籤。
-
在頁面的 DNS zones (DNS 區域) 部分,選擇您在 Certbot 憑證請求中所指定網域的 DNS 區域。
-
在 DNS 區域編輯器中,選擇 DNS records (DNS 記錄)。
-
選擇 Add record (新增記錄)。
-
在 Record type (記錄類型) 下拉式選單中,選擇 TXT record (TXT 記錄)。
-
將 Let's Encrypt 憑證請求指定的值輸入 Record name (記錄名稱) 和 Responds with (回應內容) 欄位。
注意
Lightsail 主控台會預先填入您網域的頂點部分。例如,如果您要新增
子網域,則只需在文字方塊中輸入_acme-challenge.example.com
,當您儲存記錄時,Lightsail 會新增_acme-challenge
.example.com
部分。 -
選擇儲存。
-
重複步驟 4 到 7 以新增第二組由 Let’s Encrypt 憑證請求指定的 TXT 記錄。
-
讓 Lightsail 主控台瀏覽器視窗保持開啟,您稍後會在本教學課程中返回。繼續前往本教學課程的下一節。
步驟 5:確認 TXT 記錄已傳播
使用此公用 MxToolbox 程式來確認 TXT 記錄已傳播至網際網路的 DNS。DNS 記錄傳輸可能需要一些時間,這取決於您的 DNS 託管提供者,以及設定的 DNS 記錄存留時間 (TTL)。在繼續 Certbot 憑證請求之前,請務必完成此步驟,並確認 TXT 記錄已傳播。否則,您的憑證請求會失敗。
確認 TXT 記錄已傳播至網際網路的 DNS
-
開啟新的瀏覽器視窗並前往 https://mxtoolbox.com/TXTLookup.aspx
。 -
將以下文字輸入文字方塊。請務必以您的網域取代
。domain
_acme-challenge.
domain
範例:
_acme-challenge.
example.com
-
選擇 TXT Lookup (TXT 查詢) 以執行檢查。
-
這會產生以下其中一個回應:
-
如果您的 TXT 記錄已傳播至網際網路的 DNS,您會看到類似以下螢幕擷取畫面的回應。關閉瀏覽器視窗,並繼續前往本教學課程的下一節。
-
如果 TXT 記錄未傳播至網際網路的 DNS,您會看見 DNS Record not found (找不到 DNS 記錄) 回應。確認您已新增正確 DNS 記錄至網域的 DNS 區域。如果您新增了正確記錄,請再等待片刻讓網域的 DNS 記錄傳播,接著再次執行 TXT 查詢。
-
步驟 6:完成 Let’s Encrypt SSL 憑證請求
返回 WordPress 執行個體的 Lightsail 瀏覽器型 SSH 工作階段,並完成「讓我們加密」憑證要求。Certbot 會將您的 SSL 憑證、鏈結和金鑰檔案儲存到執行個體上的 WordPress 特定目錄中。
完成 Let’s Encrypt SSL 憑證請求
-
在 WordPress 執行個體的 Lightsail 瀏覽器型 SSH 工作階段中,按 Enter 繼續您的 [讓我們加密 SSL 憑證要求]。如果成功,則會顯示與以下螢幕擷取畫面類似的回應:
訊息會確認您的憑證、鏈和金鑰檔案存放於
/etc/letsencrypt/live/
目錄。務必以您的網域取代domain
/
,例如domain
/etc/letsencrypt/live/
。example.com
/ -
記下訊息中指定的過期日期。您可將其用於在該日期續約憑證。
-
既然您擁有 Let’s Encrypt 憑證,就請繼續前往本教學課程的下一節。
步驟 7:在 Apache 伺服器目錄中建立連結到 Let’s Encrypt 憑證檔案
在 WordPress 執行個體上的 Apache 伺服器目錄中建立「讓我們加密 SSL 憑證檔案」的連結。此外,請備份現有的憑證,以防您稍後需要用到。
若要在 Apache 伺服器目錄建立至 Let's Encrypt 憑證檔案的連結
-
在 WordPress 執行個體的 Lightsail 瀏覽器型 SSH 工作階段中,輸入下列命令以停止基礎服務:
sudo /opt/bitnami/ctlscript.sh stop
您應該會看到類似以下的回應:
-
輸入下列命令以設定網域的環境變數。您可以更有效率地複製和貼上命令,藉此連結至憑證檔案。請務必以註冊的網域名稱取代
。domain
DOMAIN=
domain
範例:
DOMAIN=
example.com
-
輸入下列命令確認變數傳回正確的值:
echo $DOMAIN
您應該會看到類似以下的結果:
-
個別輸入下列命令,以重新命名現有的憑證檔案做為備份。請參閱本教學課程開頭的重要區塊,以取得有關不同發行版本和檔案結構的資訊。
-
Debian Linux 發行版本
方法 A (使用系統套件的 Bitnami 安裝):
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
方法 B (獨立的 Bitnami 安裝):
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
-
對於使用 Ubuntu Linux 發行版本的較舊執行個體:
sudo mv /opt/bitnami/apache/conf/bitnami/certs/server.crt /opt/bitnami/apache/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache/conf/bitnami/certs/server.key /opt/bitnami/apache/conf/bitnami/certs/server.key.old
sudo mv /opt/bitnami/apache/conf/bitnami/certs/server.csr /opt/bitnami/apache/conf/bitnami/certs/server.csr.old
-
-
個別輸入下列命令,以在 Apache 伺服器目錄中建立至您 Let's Encrypt 憑證檔案的連結:請參閱本教學課程開頭的重要區塊,以取得有關不同發行版本和檔案結構的資訊。
-
Debian Linux 發行版本
方法 A (使用系統套件的 Bitnami 安裝):
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
方法 B (獨立的 Bitnami 安裝):
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
-
對於使用 Ubuntu Linux 發行版本的較舊執行個體:
sudo ln -s /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache/conf/bitnami/certs/server.key
sudo ln -s /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache/conf/bitnami/certs/server.crt
-
-
輸入下列命令,啟動您先前停止的基礎服務:
sudo /opt/bitnami/ctlscript.sh start
您應該會看到類似以下的結果:
您 WordPress 執行個體的 SSL 憑證檔案現在位於正確的目錄中。
-
繼續前往本教學課程的下一節。
步驟 8:使用非常簡單的 SSL 插件將 SSL 證書與您的 WordPress 網站集成
將真正簡單的 SSL 插件安裝到您的 WordPress 網站,並使用它來集成 SSL 證書。Really Simple SSL 也會設定 HTTP 至 HTTPS 重新引導,以確保存取您網站的使用者一律在 HTTPS 連線上。
使用非常簡單的 SSL 外掛程式將 SSL 憑證與您的 WordPress 網站整合
-
在 WordPress 執行個體的 Lightsail 瀏覽器型 SSH 工作階段中,輸入下列指令,將您的
wp-config.php
和htaccess.conf
檔案設定為可寫入。Really Simple SSL 外掛程式將寫入 wp-config.php 檔案來設定您的憑證。-
對於使用 Debian Linux 發行版本的較新執行個體:
sudo chmod 666 /opt/bitnami/wordpress/wp-config.php && sudo chmod 666 /opt/bitnami/apache/conf/vhosts/htaccess/wordpress-htaccess.conf
-
對於使用 Ubuntu Linux 發行版本的較舊執行個體:
sudo chmod 666 /opt/bitnami/apps/wordpress/htdocs/wp-config.php && sudo chmod 666 /opt/bitnami/apps/wordpress/conf/htaccess.conf
-
-
開啟新的瀏覽器視窗並登入執行個 WordPress 體的管理儀表板。
注意
-
從左側導覽窗格中選擇 Plugins (外掛程式)。
-
從外掛程式頁面最上方選擇 Add New (新增)。
-
搜尋 Really Simple SSL (Really Simple SSL)。
-
選擇搜尋結果中 Really Simple SSL 外掛程式旁邊的 Install Now (立即安裝)。
-
完成安裝之後,選擇 Activate (啟用)。
-
在系統提示時,選擇 Go ahead, activate SSL! (上吧,啟用 SSL!) 系統可能會將您重新導向至 WordPress執行個體管理儀表板的登入頁面。
您的 WordPress 執行個體現已設定為使用 SSL 加密。此外,您的 WordPress 執行個體現在已設定為自動將連線從 HTTP 重新導向至 HTTPS。當訪客前往
http://example.com
時,系統會自動重新引導至加密的 HTTPS 連線 (也就是https://example.com
)。
步驟 9:每 90 天續約 Let's Encrypt 憑證
Let's Encrypt 憑證有效期為 90 天。您可以憑證過期前 30 天內進行續約。若要更新 Let's Encrypt 憑證,請執行原始命令來取得憑證。重複本教學課程的請求 Let's Encrypt SSL 萬用字元憑證一節中的步驟。