自分のドメインを持っていて、myqnapcloud を使わずに Letsencrypt の証明書を取得したいと考えていました。
最初は NAS の前にリバースプロキシを置いてみたのですが、これがqulog で問題を引き起こすことが分かったのでやめました。
次に、acme.sh を直接インストールしてみたところ、これがうまく動作したようです。以下に手順をまとめます:
# DNSプロバイダのAPIキーを取得:検証トークンのためにWebサーバーを公開しなくて済みます
# adminでsshログイン、シェルに落ちます
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/
# ホームディレクトリは再起動・アップグレードでも残りますが、他の共有でもOK
mkdir /share/CACHEDEV1_DATA/homes/admin/acme.sh
./acme.sh --install \
--home /share/CACHEDEV1_DATA/homes/admin/acme.sh \
-m "youremail@example.org"
# acmeインストールスクリプトは crontab のRAM上のコピーを変更するだけなので、永続化が必要です
crontab -l | grep acme.sh >> /etc/config/crontab
# DNSサーバーに合わせて適宜調整。ここでは(デフォルト)ゾーンのOVHを使用
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 の方がよければ、ぜひそちらを選んでください:この方法は私には効きますが、壊れたら自己責任です

- HTTP認証は使わず、DNS認証を使用しています。自分のドメインのプロバイダのAPIで、DNSAPIで使うAPIキー取得方法を調べてください。
- NASはインターネット上に公開しておらず、ローカルのunboundインストールにて yournas.yourdomain.com の偽エントリを作り、acme.sh とローカルクライアントどちらも認証できるようにしています
- 動作検証済み:再起動、毎日のサスペンド/スタンバイ、アップグレードでも問題ありません