使用Certbot安裝Let’s Encrypt的免費SSL憑證與證書密鑰到網頁服務器(WordPress支援)

自從 Google 宣布把網站是否支援 SSL(傳輸層安全性協定)的 HTTPS 的安全性瀏覽列為網站排名審查重點後,已經有大量網站和部落客自主升級以支援綠色的🔒HTTPS瀏覽。我今天要來介紹如何透過Certbot申請和安裝免費的 SSL 安全性憑證在網頁服務器上(WordPress支援)。

我先前寫過一篇《購買SSL安全憑證教學,替網站/部落格強化安全性與SEO排名》,內文提到如何付費購買SSL安全性憑證,雖然使用上較為方便,不過實際上還是有免費的方式可獲得 SSL 證書,例如今天要介紹的「Let’s Encrypt」組織就是目前全球最大的免費 SSL 憑證簽證組織,而且我們可以透過 Certbot 這套應用服務輕鬆申請 SSL 憑證讓我們進行安裝在伺服器上。

申請 Let’s Encrypt 的免費 SSL 證書

步驟一,安裝 GIT。

  • sudo apt-get update
  • sudo apt-get updrade
  • sudo apt-get install git

步驟二,安裝 Cerbot 服務。

  • cd /tmp
  • git clone https://github.com/certbot/certbot

步驟三:使用 Certbot 申請Let’s Encrypt的免費SSL憑證

  • cd certbot
  • ./certbot-auto

在自動程序執行過程中,會遇到「Do you want to continue? [Y/n] 」的詢問,只要輸入「Y」按下確認鍵(Enter/Return)就能繼續進行處理。

如果出現如下所示的錯誤資訊也不需要擔心,由於自動化程序無法針對不同系統進行設計,我們只要手動執行後續步驟即可。

Failed to find executable apache2ctl in PATH: /opt/bitnami/varnish/bin:/opt/bitnami/sqlite/bin:/opt/bitnami/php/bin:/opt/bitnami/mysql/bin:/opt/bitnami/apache2/bin:/opt/bitnami/common/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

要解決上述錯誤資訊,可以在 Certbot 目錄下,改為輸入下列指令:

./certbot-auto certonly --webroot -w /var/html/www/ -d DOMAIN

🔥注意:

  • 「/var/html/www」路徑請跟換成你的伺服器的「WordPress」目錄的正確放置路徑。
  • DOMAIN 請更換成你的正確網域。

執行上上面指令後,系統接下來會詢問你的電子郵件地址,請輸入你打算用來申請 SSL 簽證的專用信箱。之後還有兩次簡單的問題確認,通通輸入「Y」確認即可。

如果你在執行過程中遇到「DNS problem: SERVFAIL looking up A for DOMAIN」的問題,請檢查你的域名供應商(例如:NameCheap)的 DNS 設定是否正確。如果都正確,請檢查是否有設定「DNSSEC」,有的話可以先關掉試試看。

只要申請成功,你就可以看到如下所示資訊:

MPORTANT NOTES:

– Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/DOMAIN.com/fullchain.pem

Your key file has been saved at: /etc/letsencrypt/live/DOMAIN.com/privkey.pem

Your cert will expire on 2018-03-08. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run “certbot-auto renew”

Certbot 提供相關檔案的解說資訊:

  • 「privkey.pem」 :證書密鑰(the private key for your certificate)。
  • 「fullchain.pem」:證書檔案(the certificate file used in most server software)。
  • 「chain.pem」:線上憑證狀態協定(used for OCSP stapling in Nginx >=1.3.7)。
  • 「cert.pem」:SLL憑證[i](will break many server configurations, and should not be used without reading further documentation)。

在 WEB 伺服器中安裝 SSL 證書

在取得 Let’s Encrypt 的 SSL 證書後,接下來就是要將證書安裝到網頁伺服器,讓網域可以正常使用 https 的加密瀏覽。

話先說在前面,前面申請 SSL 憑證的步驟雖然是通用的,但是下面的安裝步驟會依照你的伺服器版本和網頁服務器的套件不同,會有許多不同的安裝方式,我建議參考下面安裝流程,依照自己的伺服器種類進行微調更新(下面將以 bitnami 的 WordPress 安裝套件為例和大家講解)!

如果你是直接申請得到 server.crt SSL 憑證證書與 server.key 證書密鑰檔案,可以直接複製到伺服器中的正確位置,例如:

  • sudo cp /etc/lego/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/server.crt
  • sudo cp /etc/lego/certificates/DOMAIN.key /opt/bitnami/apache2/conf/server.key

🔥注意:

  • 「etc/lego/…」路徑,請依照你的伺服器實際配置修改(例如:「/etc/letsencrypt/live/DOMAIN.com/…」);及
  • 「opt/apache2/…」路徑,請依照你的伺服器實際配置修改(例如:「/etc/apache2/ssl/…」)。

不過我們透過 Certbot 在 Let’s Encrypt 申請的是經由 PEM 編碼(PEM-encoded)的證書頒發機構(Certificate Authority, CA )所生成的「cert.pem」、「fullchain.pem」與「privkey.pem」這三個檔案,需要我們進行額外手動編輯,包括:

  • 將「cert.pem」的編碼內容複製到「server.crt」;
  • 將「fullchain.pem」的編碼內容複製到「server-ca.crt」;
  • 將「privkey.pem」的編碼內容複製到「server.key」。

注意,你的伺服器中如果沒有上述 server 檔案,需要你手動建立;有些伺服器僅會預先內建「server.crt」和「server.key」兩個檔案,需要你自行建立「server-ca.crt」證書檔案(PEM CA 核發專有的證書檔案),並且更新相關 Apache 設定檔案(Apache configuration file),例如 httpd.conf,你可以在該檔案中發現類似如下配置:

<VirtualHost default:443>
DocumentRoot "/opt/bitnami/apache2/htdocs"
SSLEngine on
SSLCertificateFile "/opt/bitnami/apache2/conf/server.crt"
SSLCertificateKeyFile "/opt/bitnami/apache2/conf/server.key"

這時候需要將下面指令增加到 SSLCertificateKeyFile 下方:

SSLCACertificateFile "/opt/bitnami/apache2/conf/server-ca.crt"

完成拷貝動作後,需要重新啟動 Apache 伺服器:

sudo /etc/init.d/apache2 restart

在重置完成後,這時候應該就能用 HTTPS 的加密瀏覽模式,開啟你的網站(或部落格)了。不過 Let’s Encrypt 的免費 SSL 憑證有著 90 天的使用限制,需要每隔 90 天重新申請一次 SSL 憑證才能讓網站保持正常加密瀏覽服務,這是比較麻煩的地方,不過看在免費的份上就勉強使用吧。

如何更新 SSL 安全性憑證

在登入 Linux 伺服器後,移動到 Certbot 的目錄下,輸入下列指令即可更新憑證檔案,之後再將該檔案內容依照前面提到的安裝步驟進行更新。

./certbot-auto renew

延伸閱讀/推薦附錄

  1. Certbot: Where are my certificates.
  2. 推薦網站/部落格專用伺服器:Bluehost
軟體摘要
software image
工具人評分
1star1star1star1star1star
用戶評比
5 based on 1 votes
軟體名稱
Certbot
作業系統
Linux
Software Category
Web Server, SSL, Safety
軟體售價
FREE

工具人

做你的外套 擁抱著卻不被擁抱 聽到你對他的撒嬌 可笑的是我沒資格計較(誤)!工具人是科技人,不是愛的僕人喔(是在傲嬌什麼)。

您可能也會喜歡…

說些什麼吧

Share +1 Tweet Send Email
%d 位部落客按了讚: