我有自己的網域,而且我想要從Letsencrypt獲得證書,而不讓myqnapcloud介入。
一開始我嘗試在NAS前面放一個反向代理,但這結果導致qulog出現問題,於是我把它移除了。
接著,我直接安裝acme.sh,這看起來是可行的,以下是步驟:
# 取得你的DNS供應商的API key:這樣就不用開啟web伺服器來放驗證token了
# 用admin帳號ssh登入,切換到shell
cd /tmp
curl -L \
https://github.com/acmesh-official/acme.sh/archive/master.tar.gz \
-o acme.sh.tar.gz
tar -xvf acme.sh.tar.gz
cd acme.sh-master/
# home目錄可存活重啟/升級,不過任何分享資料夾也可以
mkdir /share/CACHEDEV1_DATA/homes/admin/acme.sh
./acme.sh --install \
--home /share/CACHEDEV1_DATA/homes/admin/acme.sh \
-m "youremail@example.org"
# acme安裝腳本會修改RAM中的crontab,要將改動持久化
crontab -l | grep acme.sh >> /etc/config/crontab
# 根據你的DNS伺服器調整,我這裡用的是OVH(預設)zone
export OVH_END_POINT="ovh-eu"
cd /share/CACHEDEV1_DATA/homes/admin/acme.sh/
./acme.sh --issue \
--dns dns_ovh -d "yournas.yourdomain.com" \
--reloadcmd "cat
/share/CACHEDEV1_DATA/homes/admin/acme.sh/yournas.yourdomain.com_ecc/yournas.yourdomain.com.key
/share/CACHEDEV1_DATA/homes/admin/acme.sh/yournas.yourdomain.com_ecc/fullchain.cer
> /etc/config/stunnel/stunnel.pem && /etc/init.d/stunnel.sh restart"
警示與備註:
- 如果你比較喜歡用myqnapcloud而不是像我這樣動系統,那完全沒問題:這方法對我來說OK,但如果出問題你得自己收拾殘局

- 我不是用HTTP驗證,而是用DNS:查一下你自己的網域供應商API怎麼取得API key,然後搭配DNSAPI使用
- 我的NAS沒有公開在網路上,我用本地的unbound安裝假造一個yournas.yourdomain.com條目,讓acme.sh以及本地客戶端都能運作
- 已測試:可正常經過重開機、每日休眠/待命循環跟系統升級