[Nas] Synology DSM 6.1.7 無法使用 Let’s Encrypt 申請免費的 SSL 憑證 ?

最近想使用 Synology 其提供的自動註冊 SSL 憑證功能,但我的 DSM 版本過舊會出現 指令執行失敗,請重新登入DSM再試一次。 的訊息,細查後了解原來是 Let’s Encrypt 停止支援 ACMEv1 的申請方式,導致舊版 DSM 的程式 syno-letsencrypt 無法成功執行。

syno-letsencrypt 這隻程式是 Synology DSM 在下方畫面執行時會呼叫的 back-end 程式

 

事情的緣由是 Let’s Encrypt 在 2019 年底時公告 End of Life Plan for ACMEv1 將驗證方式 acme-v01 關閉造成舊版驗證方式失效,Synology 也在新版 DSM 6.2 處理掉這個問題,但如何在不升級 DSM 的情況下解決這個狀況?這個時候我找到了外國鄉民 Synology DSM 6.1 (xpenology) Lets Encrypt ACMEv1 to ACMEv2 從新版 DSM 6.2 提取的 syno-letsencrypt 這隻程式,確定了只要單獨替換此程式即可在不升級 DSM 的情況下輕鬆解決。

為了避免下載到加料版,我直接從 DSM_DS3615xs_25426.pat\hda1.tgz\hda1\usr\syno\sbin\ 提取了 syno-letsencrypt 出來使用,這邊我也附上檔案提供給懶人下載。

更新步驟如下:

  1. 準備好 syno-letsencrypt 並解壓縮後複製到 Nas 上 (密碼:https://exfast.me/)
  2. 使用 SSH 連線至 Nas
  3. syno-letsencrypt 複製到 /usr/syno/sbin/
    sudo cp /volume1/system/syno-letsencrypt /usr/syno/sbin/
  4. 使用文字編輯器將 /usr/syno/etc.defaults/letsencrypt/letsencrypt.default 打開
    sudo vim /usr/syno/etc.defaults/letsencrypt/letsencrypt.default
  5. 將欄位 server 值替換成 https://acme-v02.api.letsencrypt.org/directory
    {
        "server": "https://acme-v02.api.letsencrypt.org/directory",
        "synoddns": "https://ddns.synology.com/main.php",
        "renew_before_expire_days":30
    }
  6. 接著重開機後就可以使用 DSM 的介面正常申請 Let’s Encrypt 的 SSL 憑證囉


這裡的資訊對您有用嗎?歡迎斗內給我