幫你的Amazon Lightsail WordPress網站安裝SSL 憑證

WordPress, AWS, Tutorial

Get SSL cert in AWS lightsail

2022年,安裝SSL憑證的HTTPS網站應該是所有公司或個人網站的標準配備。讓使用者知道你的網站是安全的、也能確定從這麼網站接收或傳輸的資訊是有經過加密處理的。當然還是可以在網路上使用HTTP網站,但不只瀏覽器會對沒有SSL安全憑證的網站提出安全性警告、Google等搜尋引擎也已經將網站安全性列為網站排名的因素之中。

市面上有許多方法可以免費獲得SSL憑證,譬如非營利組織營運的憑證機構「Let’s Encrypt」所頒發的免費SSL憑證,如果使用EC2+Route 53的組合、也可以考慮使用AWS Certificate Manager來進行認證。這裡想介紹的是使用Bitnami設置工具bncert來幫架設在Amazon Lightsail上的WordPress網站進行SSL認證。

Get SSL cert in AWS lightsail

 


 

使用Bitnami HTTPS configuration tool (bncert)安裝SSL認證 #

這個認證方式是參考Amazon Lightsail文件,想確認最新內容:Enabling HTTPS on your WordPress instance in Amazon Lightsail。使用 Bitnami HTTPS configuration tool (bncert) 來啟用我們架設在Amazon Lightsail上的Bitnami WordPress網站,它無法提供Let’s Encrypt的Certbot tool一樣的萬用字元來認證所有的子網域、只能幫你指定的子網域進行認證,但估計我不會有成千上萬的子網域需要認證,所以不用每90都重新手動獲取憑證對我來說比較重要。

若有萬用字元子網域憑證需求請參考:如何在 Amazon Lightsail 中安裝萬用字元 Let’s Encrypt SSL 憑證?

 


 

bncert tool進行SSL認證 #

使用bncert tool來幫助你的WordPress網站進行SSL認證時,需要使用SSH進入網站的Lightsail Instance,屆時需要輸入你的主網域(yangijen.com)和需要進行認證的子網域(www.yangijen.com, portfolio.yangijen.com, xxx.yangijen.com等)。在進行SSL設定的同時,我們也能利用bncert工具來設定自動導向。如:http網站自動導向到https,或將yangijen.com自動導向到www.yangijen.com等。

Get SSL cert in AWS lightsail

若你是近期才在Lightsail上設置好Bitinami WordPress網站,bncert工具應該已經有內建安裝。但在安裝前還是需要確認你是否需要從命令欄介面(CLI)來手動安裝bncert 工具。

最後,bncert工具雖然也是使用Let’s Encrype認證,但他可以在每90天需要更新時幫我們自動處理,讓我們可以更專注在生產網站的內容上。三個月看似很長,但三個月後當我們已經將SSL認證拋之腦後、他卻回來跳出警告要你更新真的很嚇人,這也是我選用bncert而非Certbot的主要原因。

 


 

SSH進入 AWS Lightsail Instance #

Get SSL cert in AWS lightsail

在開始之前,先確認利用Lightsail架設的WordPress網站是否用有固定IP(Static IP address),且該IP也已經使用DNS和客製化網域名稱(yangijen.com)做連結。

Get SSL cert in AWS lightsail

進入Amazon Lightsail後台,點選SSH快速連結進入我們的WordPress instance。進入後首要確認是否已經安窗bncert工具。輸入以下的指令來確認使否有安裝,sudo /opt/bitnami/bncert-tool

若出現如下圖的畫面、或是要求更新代表我們不需要手動安裝bncert工具。

Get SSL cert in AWS lightsail

若運氣不好,顯示command not found 則需要手動安裝bncert工具。請參考 Step 4: Confirm the bncert tool is installed on your instance

 


 

設定bncert工具,進行SSL認證 #

  1. 輸入sudo /opt/bitnami/bncert-tool 來進入bncert工具。
  2. 第一個需要輸入的是我們希望進行認證的網域,包含主網域和子網域,使用空白來區分這些網域,別忘了這些網域都要已經導向到公開的IP位址。

domain list []: yangijen.com www.yangijen.com blog.yangijen.com

Get SSL cert in AWS lightsail

  1. 接下來bncert工具會詢問自動導向的設定:

    Get SSL cert in AWS lightsail

    1. Enable HTTP to HTTPS redirection:將HTTP自動導向至HTTPS,選擇Y後按確定。
    2. Enable non-www to www redirection:將前往yangijen.com的自動導向至www.yangijen.com,看個人偏好,我選擇Y後按確定。
    3. Enable www to non-www redirection:將前往www.yangijen.com的自動導向至yangijen.com,看個人偏好,因為希望將使用者導向www的網域,我選擇N後按確定。

    bncert會將我們剛剛做的選擇條列出來,確認完沒有問題後,選擇Y同意按確定。

  2. 為了使用Let’s Encrypt的服務,需要輸入電子信箱。在確認過顯示的domain list和server name後,輸入電子信箱按確認。
  3. 使用Let’s Encrypt的服務條款,建議大家快速瀏覽後選擇Y按確認。
  4. 同意後bncert將會幫我們做SSL認證的申請、設置等,稍作等候後若看到「Success」的字樣則代表設置成功了!我們的網站現在就是個SSL認證的HTTPS網站了!! 除此之外,bncert在認證到期10天前會幫我們做自動更新的動作,再也不需要擔心90天後需要手動更新的狀況。如果有需要對更多的子網域進行認證,只要重新進行上述的動作就可以了。

Get SSL cert in AWS lightsail

 


 

確認網站的SSL憑證是否有效 #

完成上述認證後,回到你的網域就可以看到左上角的鎖頭認證。有時瀏覽器會有Cache暫存網頁的狀況,可以F5重新進入或是使用無痕模式進入看看。除了上述的鎖頭HTTPS認證,也可以嘗試網域的自動導向是否有在正常動作。

Get SSL cert in AWS lightsail

Get SSL cert in AWS lightsail