經過上次安裝(在 Google Cloud Platform 雲端主機無痛安裝 WordPress + SSL+FTP)後,已經過了三個月,發現沒有設定到 SSL 自動更新,所以就回來補一下~
本篇參考原文在 Generate and Install a Let’s Encrypt SSL Certificate for a Bitnami Application Step 5
(2019/11/2 updated: 這次自動更新還是失效了,發現原文手冊有改過,本文已再重新整理)
首先到GCP,從左上角的漢堡選單點入 – Compute Engine – VM執行個體
在連接 – SSH 的右邊,有一個小三角形,選擇「在瀏覽器視窗中開啟」
更新過期的憑證
首先我們先把過期的憑證更新
依序貼上以下三個指令,標記紅色的地方記得改成自己的 EMAIL 跟網域,如果一次要更新多個網域可以多重複幾組 –domains=”DOMAIN” 在指令裡面即可
sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/letsencrypt/lego --tls --email="<span style="color: #ff0000;">EMAIL-ADDRESS</span>" --domains="<span style="color: #ff0000;">DOMAIN</span>" --path="/opt/bitnami/letsencrypt" run
sudo /opt/bitnami/ctlscript.sh start
開啟自動更新憑證
我們要建立一個排程腳本,在剛剛的指令視窗中鍵入
sudo nano /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
接著將下面這段依照你的架設環境 APACHE / NGIX 貼入,一樣別忘了修改紅色的地方,我把 renew days 提前,設定為88天,看看這次會不會自動更新…
APACHE
#!/bin/bash
sudo /opt/bitnami/ctlscript.sh stop apache
sudo /opt/bitnami/letsencrypt/lego --tls --email="<span style="color: #ff0000;">EMAIL-ADDRESS</span>" --domains="<span style="color: #ff0000;">DOMAIN</span>" --path="/opt/bitnami/letsencrypt" renew --days 88
sudo /opt/bitnami/ctlscript.sh start apache
NGINX
#!/bin/bash
sudo /opt/bitnami/ctlscript.sh stop nginx
sudo /opt/bitnami/letsencrypt/lego --tls --email="<span style="color: #ff0000;">EMAIL-ADDRESS</span>" --domains="<span style="color: #ff0000;">DOMAIN</span>" --path="/opt/bitnami/letsencrypt" renew --days 88
sudo /opt/bitnami/ctlscript.sh start nginx
接著按下 ctrl + X 存檔,若出現詢問確認就選 y,系統會再跳出一次檔名確認,直接按 enter 就好,成功儲存會回到原本的 cmd 指令進度
然後我們要給予這個檔案權限,讓它可以定期執行,依序貼上以下兩個指令
sudo chmod +x /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
sudo crontab -e
上面鍵入後,會出現如同剛剛的編輯器畫面,一樣貼上下面這段,再 Ctrl + X 存檔
0 0 1 * * /opt/bitnami/letsencrypt/scripts/renew-certificate.sh 2> /dev/null
以上,完成囉~
好厲害 可以請你代管gcp嗎 哈
可以閒聊的話留個聯絡方式
哈,其實我對這方面沒有很專業,只是擅於找資料重整出來跟大家分享
可以 mail 給我唷 i.am.vsy@gmail.com
試了其他幾個網站的方法都無效(也許跟我安裝的Bitnami版本不同?),運用這邊的方法總算順利更新憑證!感謝
有幫上忙太好了!