無償のSSL証明書の登場により自宅のSynologyサーバに対するアクセスも「HTTPS化」が可能になりました。
しかしこのSSL証明書の取得にはかなり癖があります。
そこで今までの試行錯誤の結果、判った事を下記に解説します。
1.Let’s Encrypt証明書とは
Let’s Encrypt証明書とは、米国のISRG(Internet Security Research Group)という非営利団体が運営する、利用期間が90日の無償証明書です。
よって90日を過ぎると証明書を更新する必要がありますが、ISRGではこの更新を行うスクリプト用意してくれています。
一方、Synology側ではこのスクリプトを使って証明書が切れる前に証明書を更新してくれる仕組みがある為、ユーザ側で証明書を定義すると、あとは自動で更新してくれます。
しかし、何かの理由で更新できない事があります。
その場合は、下記のように有効期限が赤字で表示されます。
このような場合は、Let’s Encrypt証明書を作成し直して下さい。
下記が正しい表示で、有効期限がグリーンで表示されます。
1)Let’s Encrypt証明書作成の環境条件
①80と443ポートでアクセスできるSynologyサーバ
・「ドメイン名」+「サブジェクトの別名」の証明書の作成/自動更新ができます。
②80と443ポートでアクセスできないSynologyサーバ(2台目のサーバ等)
・「ドメイン名」だけの証明書の作成/自動更新ができます。
・「ドメイン名」+「サブジェクトの別名」の証明書は作成できません。
サブジェクトの別名とは
「サブジェクトの別名」とは、SynologyのDDNS以外に他のDDNSでもアクセスする為に別名として定義するものです。
2)証明書作成エラーの種類
証明書作成でエラーが出る事があります。その場合は下記をチェックしてください。
①指定したDDNSに間違いがある場合
Let’s Encryptでは証明書を発行する場合に指定した「ドメイン名」や「サブジェクトの別名」が間違いなくアクセスできるか?のチェックを行っています。
よってエラーが出た場合は、まず指定したDDNSに間違いがないか?を確認してください。
②Let’s Encrypt側の制限
Let’s Encryptサイトでは証明書作成件数に色々な制限を掛けています。
もし「制限数に達しました」とのエラーメッセージが出た場合は、1週間待ってから再度、作業をしてください。
尚、Let’s Encryptでどの様に登録されたか?は下記のURLで確認できます。
表示された画面に「調べたいDDNS名」を入力して検索すると、登録/更新履歴が表示されます。
2.SSL証明書作成の2つの方法
1.コントロールパネルの下記アイコンをクリックします。
セキュリティ全体のメニュが表示され、その中に「証明書」タブがあります。
■「追加」ボタンを挿入します。
2.下記画面が表示されます。
■新しい証明書の追加
このメニュは証明書を作成するだけで、サーバにその証明書が適用された訳ではありません。
この証明書をサーバに適用させる為には下記を実行します。
①証明書を右クリックして「編集」メニュを実行します。
②表示された画面で「既定値としての証明書に設定します」にチェックを付ける。
③サーバを「再起動」する。
メモ
この証明書の作り方の特徴は古い証明書が残る事ですが、操作が面倒です。
■既存の認証を置き換える
このメニュは現在の「デフォルトの証明書」を破棄して、新しい証明書に置き換え、Webサーバの再起動を行ってくれます。
よって即時に新しい証明書が反映されますのでこちらを利用するのがお勧めです。
3.SSL証明書の具体的な作成手順
1)コントロールパネルの下記アイコンをクリックします。
2)「証明書」タブを開きます。
下記が表示されます。
■取得済みの証明書はここに表示されます。
メモ
デフォルトの証明書
現在使われているSSL証明書です。
Synology QuickConnect Certificate
QuickConnect IDを設定すると、ここに証明書が作成されます。
DSM7からQuickConnectアクセスはhttpst通信化されました。
3)「追加」ボタンを挿入する
下記が表示されます。
■「既存の照明書を置き換えます」を選択します。
4)下記のメニュが表示されます。
■「Let’s Encryptから証明書をお受け取り下さい」を選択します。
下記画面が表示されます。
<設定例>
項目 | 設定値 |
ドメイン名 | nw.myds.me等 |
電子メール | 申請するメールアドレス |
サブジェクトの別名 | hnw.ddnsfree.com等 |
■ドメイン名の「nw.myds.me」はSynologyから取得したDDNSです。
■サブジェクトの別名にはドメイン名以外のDDNSを指定します。
私は「Dynu.com」からこのサーバアクセス用に「hnw.ddnsfree.com」を取得しており、それをここで指定しています。
尚、サブジェクトの別名が複数ある場合は「セミコロン;」で区切ります。
■メールアドレスはLet’s Encryptを申請するIDです。
5)「適用」ボタンを挿入します
するとLet’s Encryptからの証明書が追加され、サーバが再起動します。
6)「詳細」タブを選択します。
下記が表示されます。
■「HTTP圧縮を有効にする」にチェックを入れます。
この設定をすることによりHTTPS通信のスピードが上がります。
以上でSSLサーバ証明書を使ったHTTPS通信が可能になりました。
4.https通信に切り替えた時の他の設定項目
1.DSMアクセスをHTTPSに限定する方法
HTTPS通信に変更する理由は、Synologyの各種アプリケーションのユーザ名とパスワードが外部に流出する事を防止する為です。
よってHTTPS化にした後は、HTTP通信を使わない運用が重要になります。
コントロールパネルから下記アイコンをクリックしてください。
下記画面が表示されます。
■上記にチェックを付けるとHTTPでアクセスしても自動的にHTTPS通信に切り替わります。
http://貴方のDDNS:5000又はhttp://IPアドレス:5000
↓
https://貴方のDDNS:HTTPSポート番号
メモ
上記の設定にすると「http://IPアドレス:5000」でもアクセスできなくなります。
もし、証明書エラー等でhttpsでアクセスできなくなった場合は、QuickConnect IDでアクセスしてください。
IDを忘れた場合は下記URLにログインしたら確認できます。