Synology DSM 無料 SSL 証明書の発行方法 | acme.sh + Cloudflare DNS で Let’s Encrypt を自動更新
要約: Synology DSM で acme.sh と Cloudflare DNS 認証を使い、Let's Encrypt 無料 SSL 証明書を発行して自動更新する方法を整理します。synology_dsm deploy-hook の設定と 2FA およびホスト名エラーの解決方法まで案内します。

概要
DSM を外部に直接公開する方式は危険なため、Tailscale、OpenVPN、WireGuard などの VPN の使用を推奨します。
外部アクセスを遮断しドメインをプライベート IP にマッピングした環境では、HTTP 認証方式での無料証明書登録が困難です。
この記事では Synology NAS(DSM)で acme.sh を使って Let’s Encrypt 無料 SSL 証明書を発行し、DSM に自動インストールする方法を整理します。
準備事項
- ドメイン: 例)
plzhans.com - DNS: Cloudflare 使用(推奨)
- DSM 自動インストール用アカウント(2FA なしのアカウントが必要、下記参照)
Cloudflare API トークンの発行(最小権限)
セキュリティのため、特定ドメインに最小権限のみを付与したトークンを作成します。
最小必須権限
- DNS: Read, Edit
- Zone: Read

証明書の発行(acme.sh)
まずテストサーバーで確認
本番(Production)サーバーに繰り返しリクエストするとブロックされる可能性があります。成功サイクルが確立するまではテストサーバーを使用します。
--server letsencrypt_test- 発行には
--issueオプションが必要です
1#!/bin/bash
2
3export CF_Token="cloudflare_api_token"
4
5acme.sh \
6 --server letsencrypt_test \
7 --log --debug \
8 --home ~/ssl \
9 --issue \
10 --dns dns_cf \
11 -d "plzhans.com" \
12 -d "*.plzhans.com"
本番発行
1acme.sh \
2 --server letsencrypt \
3 --log --debug \
4 --home ~/ssl \
5 --issue \
6 --dns dns_cf \
7 -d "plzhans.com" \
8 -d "*.plzhans.com"
発行確認
1acme.sh \
2 --home ~/scripts/ssl \
3 --list
4
5# execute result
6# Main_Domain KeyLength SAN_Domains CA Created Renew
7# plzhans.com "ec-256" *.plzhans.com LetsEncrypt.org 2026-05-15T04:59:58Z 2026-07-13T04:59:58Z
参考
- 使用したトークン情報は
account.confファイルに保存されます - ドメイン設定は例)
~/ssl/plzhans.com_ecc/plzhans.com.confに保存されます
発行した証明書を DSM にインストール(deploy-hook)
acme.sh は deploy-hook として synology_dsm をサポートしています。
- DSM に証明書がない場合、
SYNO_Create="1"の値が必要です - テスト証明書がすでに発行されている場合、削除するか
--forceオプションが必要になることがあります
既存証明書の削除(必要な場合)
1acme.sh --remove --home ~/ssl -d "plzhans.com"
DSM 自動インストールスクリプトの例
1#!/bin/bash
2
3# syno server
4export SYNO_Hostname="localhost"
5export SYNO_Scheme="https"
6export SYNO_Port="5001"
7
8# syno account
9export SYNO_Username='system-script'
10export SYNO_Password='secret'
11
12export SYNO_Create="1"
13
14acme.sh \
15 --deploy \
16 --insecure \
17 --home ~/ssl \
18 --log --debug \
19 --deploy-hook synology_dsm \
20 -d "plzhans.com"
21
22# execute result
23# ...
24# ret='0'
25# Success
問題発生: 2FA で自動化がブロックされる場合
SYNO_Username アカウントに 2FA が適用されていると、自動化の妨げになります。
解決策
- 別のアカウントを作成します(管理者アカウントが必要)
- 自動化用の最小セキュリティ対策で運用します
- 外部アクセス不可
- 必要な権限のみ付与
- そのアカウントの 2FA を無効化します
DSM 確認

FAQ: ホスト名/証明書マッチングの問題
外部アクセスが遮断されて代表ドメインでのアクセスが不可能な場合(例: wee-home.synology.me)、証明書マッチング失敗によりエラーが発生する可能性があります。コマンドの実行時に https://{Hostname}:{port} でアクセスするためです。
3 つの解決策から 1 つを選択
SYNO_Hostnameを実際にアクセス可能な有効な証明書のドメインに指定します/etc/hostsファイルにドメインを記述して DNS クエリをバイパスし、127.0.0.1に接続しますhttp方式を使用します