WordPress 使用https (在Nginx Web Server 上)

參考【WordPress 使用https】文章,我們已經知道如何在Apache Web Server 上,申請SSL 憑證。以下要介紹,若WordPress 是建立在Nginx Web Server 上,該如何申請SSL 憑證。

1. 參考Bitnami 官方文件,主要使用Lego 來處理SSL 憑證。根據文章,我們使用SSH 連入有安裝WordPressVM,如下圖。

2. 使用SSH 連入VM 之後,根據文章,我們可以確認Web Server 是否為Nginx

3. 安裝Lego。在終端機下,輸入以下指令,開始下載Lego

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 -

下載完成之後,可以得到如下圖。

輸入以下指令,解壓縮Lego

tar xf lego_v4.17.4_linux_amd64.tar.gz

輸入以下指令,將Lego 複製到letsencrypt 資料夾下。

sudo mkdir -p /opt/bitnami/letsencrypt
sudo mv lego /opt/bitnami/letsencrypt/lego

4. 輸入以下指令,停止Bitnami Service

sudo /opt/bitnami/ctlscript.sh stop

5. 開始申請SSL 憑證。輸入以下指令,來請申WordPress 網站SSL 憑證。

sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/opt/bitnami/letsencrypt" run

舉例來說,我的mintrabbitplus@gmail.com 為申請domain name (mintrabbitplus.com) 的信箱。因此,EMAIL-ADDRESS 就需填mintrabbitplus@gmail.comDOMAIN 就需填mintrabbitplus.com

sudo /opt/bitnami/letsencrypt/lego --tls --email="mintrabbitplus@gmail.com" --domains="mintrabbitplus.com" --path="/opt/bitnami/letsencrypt" run

6. 輸入以下指令,將申請好的憑證掛上Nginx

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

其中【你的網域】填入第5步驟的”DOMAIN“值。舉例來說,我的DOMAINmintrabbitplus.com,則【你的網域】就是mintrabbitplus.com,如下。

sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.csr /opt/bitnami/nginx/conf/bitnami/certs/server.csr.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/mintrabbitplus.com.key /opt/bitnami/nginx/conf/bitnami/certs/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/mintrabbitplus.com.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt
sudo chown root:root /opt/bitnami/nginx/conf/bitnami/certs/server*
sudo chmod 600 /opt/bitnami/nginx/conf/bitnami/certs/server*

7. 輸入以下指令,重新啟動Bitnami Service

sudo /opt/bitnami/ctlscript.sh start

8. 完成以上步驟之後,到此網站SSL 憑證是否成功,如下圖,以mintrabbitplus.com 為例。

測試完成,如下圖。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *