這裡紀錄合併兩台伺服器上 Let’s Encrypt SSL 憑證的步驟。
最近我用一台新的 Linode VPS 虛擬機器架設了 CentOS 的 LEMP 伺服器,經過測試之後感覺很不錯,接著想要把舊機器上的網站都搬到新機器上,搬動網站除了檔案與 MySQL/MariaDB 資料庫之外,還必須轉移 Let’s Encrypt SSL 的憑證,這樣才能讓 HTTPS 加密的網頁正常顯示。
目前 Let’s Encrypt 官方的指令工具並沒有提供合併兩台伺服器 Let’s Encrypt 設定檔與 SSL 憑證的功能,所以合併的工作需要手動處理。這裡我是依照 Let’s Encrypt 官方討論區文章上所建議的作法來合併。
Let’s Encrypt 的 SSL 憑證相關檔案與設定都放在 /etc/letsencrypt
這個目錄之下,在將舊伺服器的 Let’s Encrypt SSL 憑證搬到新伺服器時,只要打包以下三個目錄中的資料即可:
/etc/letsencrypt/archive
/etc/letsencrypt/live
/etc/letsencrypt/renewal
其中 /etc/letsencrypt/live
底下是連結檔,所以在複製的時候要注意這些連結的正確性。
建議直接以 root
權限把這三個目錄用 tar
打包起來:
# 打包
sudo su -
cd /etc/letsencrypt
tar zcf letsencrypt.tar.gz archive live renewal
然後將這個打包好的壓縮檔複製到新的伺服器上再解開,並放置在對應的位置。
# 解開
sudo su -
tar zxf letsencrypt.tar.gz
基本上來說,只要將這三個目錄下的資料都複製到新伺服器上,合併的工作就完成了,而如果新舊伺服器上的網頁檔案放置路徑不同,記得要檢查 /etc/letsencrypt/renewal
中的設定檔,還有網頁伺服器(如 nginx)的設定檔,修改相關的路徑。
最後再確認一下自動更新憑證是否可以正常運作:
sudo certbot renew --dry-run
若可以正常更新憑證的話,這樣就完成了。若之前有設定好 certbot
更新憑證的 crontab,則之後這些移過來的憑證就會跟著自動更新了。