現場(環境):CentOS7 套件:let’s encrypt
原因:
目前申請的Let’s Encrypt憑證預計兩個月就會到期,
而在到期前沒有進行更新憑證動作的話,那個憑證就會自動被註銷。
這邊需要特別注意。
處理方式:
有兩種處理方式: 1) 手動 2)自動
就工程師比較忙的狀況下。當然是自動輕鬆點。
但要使用自動更新前。還是要知道一下手動怎麼做。
重要的提醒!
1) 更新前要確認你的伺服器可以正常的連線外部網路
2) 更新前要關閉伺服器上相關WEB服務。不然更新會失敗。
#systemctl stop httpd
Step 1. 先切換到上次申請憑證時,透過git抓回來的letsencrypt路徑。
我是抓到 root 路徑下。
#cd /root/letsencrypt
申請方式的執行指令是下面這個,當然你要直接重新申請也是可以。
#./certbot-auto certonly -a standalone -d 申請的網址
但比較主要的作法是更新
# ./letsencrypt-auto renew
下圖是因為上面我先重新做了一次憑證,所以發現過期時間很久。
還不用更新憑證才出現這個錯誤。
正常狀況下,是可以完成更新的。
更新完確認一下你的服務器。憑證是設定到那邊。
例如:httpd的設定會寫在 /etc/httpd/conf.d/ssl.conf裏面
確認這三個設定,確定一下後面的路徑在那邊。
SSLCertificateFile
SSLCertificateKeyFile
SSLCertificateChainFile
然後把更新完的憑證覆蓋到先前置放憑證的路徑下。
重啟httpd服務就可以了。
#systemctl restart httpd
其實更新的指令就只有 ./letsencrypt-auto renew
自動更新就是將上面的動作寫成shell 放到crontab中執行。
因為只有輸入cp會被環境(alias)影響。直接帶上-i參數,
有覆蓋行為時會詢問,不想要發生這個問題就直接帶完整路徑/bin/cp執行就可以。
=!===
#/bin/bash
systemctl stop httpd
[letsencrypt路徑]/letsencrypt-auto renew
#如果有要把憑證移動路徑。也寫在Script中
/bin/cp -rf /etc/letencrypts/live/[網址]/憑證 [放置憑證的路徑]
systemctl start httpd
===!=
寫完記得賦與這個shell可以執行的權限
#chmod +x [更新shell Script檔案]
設定crontab排程
參考網址內說的是每2個月的1號進行更新。
所以這邊要注意,依照你申請憑證的時間設定。
我請時間是12號,所以crontab 的第3欄位輸入日期。
#crontab -e
=!===
0 0 12 */2 * sh [更新letsencrypt憑證的Shell路徑]
===!=
<本篇完>
參考網址:
https://oxygentw.net/computer/letsencrypt-auto-renew/