HTTPS・DDNSって何?リバースプロキシで安全にリモート接続する方法【Jellyfin設定例あり】|Synology NAS

YokiYoki
YokiYoki

Synology PhotosやDS fileを開くと、「HTTPSを有効にする」という項目があります。素人の私は「HTTPSって何?」と思い、調べてみました。

Synology NASにはQuickConnectというリモート接続機能がありますが、利用できるアプリには制限があります。一方、Jellyfinのようなサードパーティー製アプリには、DDNSを利用したリモート接続方法があり、設定時に証明書を取得することでHTTPSによる安全な通信が利用できます。

安全にリモート接続するために、私もDDNSを設定してみました。

その他の接続方法として「Tailscale」があります。この記事の一番下に関連記事を載せました。

https・DDNSって何?

httpsとは

 httpsはデーターを安全にやり取りする仕組み。暗号化(データー保護・盗聴防止)・サーバー認証(身元確認・なりすまし防止)・改ざん防止・データーの正確な送受信など、セキュリティを強化する。

DDNSとは

 DDNS(ダイナミックドメインネームシステム)はIPアドレスが変わっても、常に同じドメイン名でアクセスでき、外出先から自宅のネットワークに簡単にアクセスできる仕組み。

QuickconnectDDNS
設定の難易度簡単・ルーター設定不要やや難・ルーター設定必要
通信速度やや遅い比較的速い
証明書自動的に適用設定が必要
機能の範囲Synologyが提供する基本的なアプリに限定より幅広いアプリで利用可

DDNSの設定方法

証明書発行とポート開放

Synology NASでは、Let’s Encryptから無料のSSL証明書を取得できます。証明書を取得するには、DDNSで使用する「ホスト名」が必要です。

まず、「コントロールパネル」→「外部アクセス」→「DDNS」へ進み、サービスプロバイダーは無料で利用できる「Synology」を選択します。

任意の英数字を入力してホスト名を作成し、「Let’s Encryptから証明書を取得して、デフォルトの証明書として設定する」にチェックを入れます。「OK」をクリックすれば、DDNSの登録は完了です。

次に、「コントロールパネル」→「セキュリティ」→「証明書」を開き、先ほどDDNSで登録したホスト名の証明書が追加されていることを確認します。

続いて、ルーターの5000番と5001番のポートを開放します。5000番はHTTP、5001番はHTTPSでDSMへ接続するためのデフォルトポートです。

ポート開放は、NASの設定画面から行えます。

「コントロールパネル」→「外部アクセス」→「ルーターの設定」へ進み、「作成」→「組み込み式アプリケーション」を選択します。

一覧から、ローカルポートが5000番と5001番になっている項目(管理UI、File Station、Audio Stationなど)にチェックを入れます。「完了」をクリックしたあと、最後に「適用」をクリックすれば設定は終了です。

※ホスト名は、前半部分に好きな英数字(例:yokiyokiなどの愛称やニックネーム)を入力し、後半部分は「synology.me」「myDS.me」など、表示されるドメイン名から好きなものを選択します。

作成したホスト名は、今後DDNSでNASへ接続するときに使用するため、覚えやすい名前がおすすめです。ただし、推測されやすい単純な名前は避け、適度に分かりやすく、他人に推測されにくいホスト名を設定しましょう。
例;ホスト名=yokiyoki2025.synology.me
例;ホスト名=medaka7777.myDS.me

これで、ブラウザから 「https://ホスト名:5001」 を入力してDSMへアクセスできるようになります。

ちなみに、DDNSを設定すると、これまでQuickConnect経由でDSM(管理OS)へアクセスしていた場合でも、自動的に 「https://ホスト名:5001」 のURLへ切り替わります。

リバースプロキシ(安全にHTTPS接続を行うための設定)

Jellyfinのようなサードパーティー製アプリを公開する場合は、安全にHTTPS接続を行うため、リバースプロキシを利用するのがおすすめです。

Jellyfinの設定例

DDNSのhttps(SSL)化は下記のとおりです。

Jellyfinのホームページをみると暗号化してNASにアクセスするには、リバースプロキシ・VPNなどの利用が推奨されていています。私はリバースプロキシを利用しました。Jellyfinのhttps・httpポートはデフォルトで8920・8096になっているようです。Jellyfinサイトhttps://jellyfin.org/docs/general/post-install/networking/

設定は「コントロールパネル」→「ログインポータル」→「詳細設定」のリバースプロキシで行います。


最後に「コントロールパネル」→「外部アクセス」→「ルーターの設定」の作成→≪組み込み式アプリケーション≫→ローカルポート8920(リバースプロキシ)・8096(Jellyfin)を探して、チェックを入れて完了後適用で終了です。

私は8920を使用していますが、ポート番号443はURLの最後にポート番号を書かなくていいのでおすすめです。

① 8920を利用する方法(私の設定例)

  • https://xxxx.com:8920
  • JellyfinのデフォルトHTTPSポートを利用する方法です。
  • URLの最後にポート番号の入力が必要になります。

443を利用する方法(おすすめ)

  • https://xxxx.com →URLの最後にポート番号を入力する必要がありません。
  • リバースプロキシを利用して、443→8096へ転送する方法が一般的です。
  • サブドメインとワイルドカード証明書を利用すると、複数のサービスをすべて443で統一して管理することもできます。
    ワイルドカードは、Let's Encryptの証明書を取得する際に、「サブジェクトの別名(SAN)」へホスト名の前に *.(アスタリスクとドット)を付けることで作成できます。
    入力例
    ドメイン名:yokiyoki.synology.me
    サブジェクトの別名:*.yokiyoki.synology.me


    ワイルドカード証明書を設定すると、jellyfin.yokiyoki.synology.me や immich.yokiyoki.synology.me など、任意のサブドメインを利用できるようになります。サービスごとにサブドメインを分けることで、すべてHTTPS(443)で安全に公開することが可能です。

まとめ

私は以前、「QuickConnectがあればDDNSは必要ない」と思っていました。

しかし、「DS Video」の提供終了をきっかけに、動画視聴アプリとして「Jellyfin」を導入することにしました。ところが、Jellyfinを外出先から利用する場合はQuickConnectに対応しておらず、DDNSによる接続が必要になりました。このような経緯から、私もDDNSを設定しました。

一方で、次のような使い方であれば、DDNSを設定する必要はないでしょう。

・Synologyが提供する(Quickconnectが使える)アプリだけで支障がない。
・転送速度が多少遅くても、Quickconnectで問題ない。

通常は、QuickConnect IDを使えば問題ありません。設定も簡単で、多くの方はこの方法だけで十分です。

ただし、「接続が遅い」「うまく接続できない」と感じる場合は、ホスト名(DDNS)で接続すると改善することがあります。

また、ローカルIPアドレスで接続する場合は、ログイン画面の「HTTPS」を有効にすると、初回に「信頼されていない接続」という警告が表示されます。「続行」を選択すると証明書が端末に保存され、次回以降は警告は表示されなくなります。なお、ローカルIPアドレスでの接続は自宅LAN内専用であり、外出先からのリモート接続には利用できません。

セキュリティのため、Synologyアプリではログイン時にHTTPSを有効にして利用することをおすすめします。

下記の記事では「ファイルマネージャー+」アプリから、DDNS(ホスト名)を使ってSynology NASへSFTP接続する方法を紹介しています。

NURO光でNURO光で2Gから10Gにしました。するとポート開放ができなくなったため、リバースプロキシが使えず、DDNSのhttps化ができなくなりました。代替で「Tailscale」を導入しました。

タイトルとURLをコピーしました