在GCP上安裝WordPress with NGINX and SSL Certified by Bitnami and Automattic,並設定Let’s Encrypt SSL憑證

這篇文章記錄如何在GCP上安裝WordPress with NGINX and SSL Certified by Bitnami and Automattic。GCP的Marketplace有很多版本的Wordpress解決方案可以使用,為什麼使用這個版本呢?主要是因為它可以較容易的使用Let's Encrypt的免費SSL憑證。

這篇文章記錄如何在GCP上安裝WordPress with NGINX and SSL Certified by Bitnami and Automattic。GCP的Marketplace有很多版本的Wordpress解決方案可以使用,為什麼使用這個版本呢?主要是因為它可以較容易的使用Let’s Encrypt的免費SSL憑證。

操作步驟:

  1. 申請GCP帳號
  2. 新增VM,使用WordPress with NGINX and SSL Certified by Bitnami and Automattic這個解決方案
  3. 申請Let’s Encrypt SSL憑證
  4. 設定自動定期更新憑證

1. 申請GCP帳號

這個部分就不多提了,主要想強調的是,雖然在申請帳號時會需要輸入信用卡資訊,但目前GCP有免費的300塊美金額度,即使都用完了也不會自動扣款。GCP只會先將機器暫停,等到使用者主動升級成付費方案或免費方案後再重啓服務。

2. 新增一台VM

點選左邊選單的Marketplace,搜尋WordPress with NGINX and SSL Certified by Bitnami and Automattic並開始安裝,Deployment name可自由設定,剩下的設定採用預設即可,確認無誤後開始部署。

部署完成後,Deployment Manager頁面會跑出來,上面會有剛設定完成的Wordpress網址及Admin帳號密碼,這時候WP相關的設定已經結束。只是目前的伺服器位置為動態IP,如果希望它變成固定IP,要到左側選單的VPC網路 > 外部IP位置,將剛剛建立VM的IP由臨時改為靜態。

這時候就可以去設定DNS了(也可以用GCP的Cloud DNS),將網域指向剛剛設定好的IP後,就可以開始使用Wordpress了。

另外,剛裝好時頁面右下角會出現一個Bitnami的banner,如果要把這個banner拿掉,需要到機器裡面執行:

sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1

3. 申請SSL憑證

原則上是參考Bitnami的官方文件來設定。

3.1 連線進入剛剛裝好的VM,接著安裝Lego這個用來處理SSL憑證的工具

第三行的X.Y.Z要自己輸入,取決於第二行下載到的Lego版本(如3.3.0)。

cd /tmp
curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i -
tar xf lego_vX.Y.Z_linux_amd64.tar.gz
sudo mkdir -p /opt/bitnami/letsencrypt
sudo mv lego /opt/bitnami/letsencrypt/lego

3.2 準備開始申請SSL憑證,先把Nginx, MySQL等停止

sudo /opt/bitnami/ctlscript.sh stop

3.3 使用Lego開始申請SSL憑證

這個指令其實就是在做CSR,申請成功或失敗都會馬上顯示,如果申請失敗,可能的原因是網域打錯,或是DNS沒有順利指向你的機器。

sudo /opt/bitnami/letsencrypt/lego --tls --email="你的信箱" --domains="你的網域" --domains="你的其他網域" --path="/opt/bitnami/letsencrypt" run

3.4 把申請好的憑證讓Nginx使用

成功申請憑證後,就可以讓Nginx讀取了。第四行和第五行的”你的網域”記得要改。

sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
sudo mv /opt/bitnami/nginx/conf/server.csr /opt/bitnami/nginx/conf/server.csr.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/你的網域.key /opt/bitnami/nginx/conf/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/你的網域.crt /opt/bitnami/nginx/conf/server.crt
sudo chown root:root /opt/bitnami/nginx/conf/server*
sudo chmod 600 /opt/bitnami/nginx/conf/server*

3.5 重啓伺服器

sudo /opt/bitnami/ctlscript.sh start

這時候應該就可以用https連線了。


4. 設定定期更新SSL憑證

第三步的方法,每90天憑證就會到期一次,如果要避免未來每次都要手動更新,可以透過定期執行script來更新憑證。

4.1 新增更新憑證的script

sudo mkdir -p /opt/bitnami/letsencrypt/scripts
sudo vim /opt/bitnami/letsencrypt/scripts/renew-certificate.sh

在檔案裡面貼上以下內容

#!/bin/bash

sudo /opt/bitnami/ctlscript.sh stop nginx
sudo /opt/bitnami/letsencrypt/lego --tls --email="你的信箱" --domains="你的網域" --path="/opt/bitnami/letsencrypt" renew --days 60
sudo /opt/bitnami/ctlscript.sh start nginx

把script權限改為可執行

sudo chmod +x /opt/bitnami/letsencrypt/scripts/renew-certificate.sh

4.2 設定定期執行的cronjob

sudo crontab -e

加入此行

0 0 1 * * /opt/bitnami/letsencrypt/scripts/renew-certificate.sh 2> /dev/null

大功告成

以上是在GCP中安裝WordPress with NGINX and SSL Certified by Bitnami and Automattic的步驟。很簡單的將操作的流程記下,若有不太清楚處請多包涵!

安裝完畢後,此時我們將會有一台VM,裡面有一個Wordpress網站,你可能會想要在同一台機器裡裝其他的Wordpress站台,下一篇會把安裝的過程也記錄下來。

延伸閱讀:如何在GCP上的WordPress with NGINX and SSL Certified by Bitnami and Automattic安裝第二個WordPress

3 Comments

  1. […] 分別嘗試與參考網路上的教學 1.WordPress / 網站架設與搬家教學系列-連結 2.在GCP上安裝WordPress with NGINX and SSL Certified by Bitnami and Automattic,並設定Let’s Encrypt SSL憑證-連結 […]

  2. Hi

    你寫得好清楚,十分有用的文章!

    小建議~
    4.1 新增更新憑證的script 的地方,
    創建 renew-certificate.sh 之前,如果能和官方說明文件一樣,補上創建資料夾 /opt/bitnami/letsencrypt/scripts 的指令,會讓整篇更完整 :)

Leave a Reply