無償のSSL証明書の登場により自宅のWebサイトでもHTTPS化が可能になりました。
しかしDSMの証明書の取得方法はかなり癖があり何故、エラーになるのか?等がマニュアルを見ても全然分かりません。
そこで試行錯誤の結果、判った事を解説します。
1.事前知識:証明書作成の環境
Let’s Encrypt証明書を作成する為には、80と443ポートでアクセスできるサーバで行う必要があります。
但し、現在はSynologyのDDNSだけを利用する場合のみ、80と443ポートでアクセスできないサーバからでも作成が可能となりましたが「サブジェクトの別名」は指定できません。
※「サブジェクトの別名」とは、その他のDDNSでアクセスする場合に登録するDDNSです。
2.事前知識:証明書作成の2つの方法
1.コントロールパネルの下記アイコンをクリックします。
セキュリティ全体のメニュが表示され、その中に証明書タブがあります。
2.上図の「証明書タブ」を開いて『追加ボタン』を挿入してください。
下記画面が表示されます。
上図の様に①新しい証明書を追加、②既存の認証を置き換えのメニュが表示され、いづれのメニュでもLet’s Encryptの証明書は作成できますが、性格が異なります。
①新しい証明書の追加
このメニュは証明書を作成するだけです。
私はSynologyのサーバを3台所有している為、80と443ポートでアクセスできるサーバで3台分のサーバ証明書を作成しています。
メモ①
作成した証明書を当該サーバに適用させる為には証明書を「Default certificate」にして、Webサーバを再起動する必要があります。
Webサーバの再起動は「コントールパネル→ネットワーク→DSM設定」でポート番号を変更して更新するとWEBサーバが再起動されますが、操作が面倒なので、当該サーバの証明書作成にはこのメニュは使いません。
メモ②
他のサーバのサーバ証明書は、証明書をエクスポートし、他のサーバでそれをインポートして適用させています。
但し、この方法で作った証明書は自動更新してくれないので、署名書の有効期限が切れた段階でマニュアルで更新しています。
操作方法は下記ドキュメントを参照してください
②既存の認証を置き換える
これは現在の「Default certificate」証明書を破棄して、新しい証明書に置き換えたうえでWebサーバの再起動を行ってくれます。
よって即時に新しい証明書が反映されまので、当該サーバの証明書作成は、こちらを利用するのがお勧めです。
3.Let’s Encrypt証明書の作成手順
1.ルータの設定でポート番号の「80番」と「443番」を証明書作成サーバに向けて下さい。
設定方法はSynology NASをDDNS(ドメイン名)でアクセスするを参照してください。
80 :WEBのHTTP通信
443:WEBのHTTPS通信
2.SSL通信の関連項目を確認してください
①DSMのHTTPS通信のポート番号を指定します
「コントロールパネル→ネットワーク→DSM設定タブ」でHTTPSのポート番号を指定します。
これがDSMにログインする時のポート番号です。
②WebDAV ServerのHTTPS通信のポート番号を指定します
「WebDAV Sever」のHTTPSのポート番号を指定します。
これがWebDAV接続する時のポート番号です。必ずルータにもこのポート番号を設定して下さい。
3.証明書の取得方法
「コントロールパネル→セキュリティ→証明書タブ」を開く
①追加ボタンを挿入する
『既存の照明書を置き換える』を選択します。
②表示されたメニュの中から、『Let’s Encryptから証明書をお受け取り下さい』を選択します。
③下記画面が表示されます。
<設定例>
項目 | 設定値 |
ドメイン名 | nw.myds.me等 |
Eメール | 申請するメールアドレス |
サブジェクトの別名 | hnw.ddnsfree.com等 |
■ドメイン名の「nw.myds.me」はSynologyから取得したDDNSです。
■サブジェクトの別名にはドメイン名以外のDDNSを指定します。
私は「Dynu.com」からこのサーバアクセス用に「hnw.ddnsfree.com」を取得しており、それをここで指定しています。
尚、サブジェクトの別名が複数ある場合は「セミコロン;」で区切ります。
■メールアドレスはLet’s Encryptを申請するIDです。同じドメイン名&メールアドレスの場合は、更新処理になります。
④適用ボタンを挿入するとLet’s Encryptからの証明書が取得され、サーバが再起動します。
以上でSSLサーバ証明書が取得できたのでHTTPS通信が可能になりました。
証明書取得でエラーが出た時の対処法
DDNSに間違いが無いか?を確認後、新しいメールアドレスで再度トライして下さい。
Let’s Encrypt証明書の取得は、「Let’s Encrypt」自体の制限と、それにアクセスする「Synology」のプログラムの制限があり、非常に難解です。
エラーには、DDNSが正確にアクセスできない!又は申請するメールアドレスが何処かの制限に引っかかっている場合が多い様です。
尚、Let’s Encryptでどの様に登録されたか?は下記のURLで確認できます。
表示された画面に「調べたいDDNS名」を入力して検索すると、登録/更新履歴が表示されます。
4.正しい証明書か?否かの確認方法
下記画面でサブジェクトの別名で、登録したDDNSが表示されていたら完了です。
①証明書の有効期間が表示されています。期日が近づくとDSMが自動で証明書を更新します。
②右にある下矢印を挿入すると証明書の詳細が表示されます。ここに別名のDDNSが登録されています。
③有効期限がグリーンでなく赤字で表示される場合は何かの理由で更新できない事を示しています。
この場合は右クリックで「証明書の更新」を行ってください。
4.https通信に切り替えた時の注意点
HTTPS通信に変更する理由は、Synologyの各種アプリケーションのユーザ名とパスワードが外部に流出する事を防止する為です。
よってHTTPS化にした後は、HTTP通信を使わない運用が重要になります。
下記に各アプリケーション毎の対策を解説します。
4-1.DSMへのアクセスをHTTPSに限定する方法
「コントロールパネル→ネットワーク→DSM設定」で下記画面を呼び出してください。
※1.HTTPとHTTPSのポート番号を設定します。
併せてルータの設定も忘れないでください。
※2.「HTTP接続をHTTPSに自動リダイレクトする」にチェックを入れてください。
これでHTTPでは接続できなくなります。
※3.「HTTP/2を有効にする」にチェックを入れてください。
詳細は割愛しますがHTTP通信の性能向上に関係する機能です。
4-2.WEBサイトへのアクセスをHTTPSに限定する方法
WEBサイトにはMariaDBをアクセスするphpMyAdminと、WordPress等のアプリケーションで作った独自サイトがあります。
これらをHTTPSにリダイレクトさせる為には仮想ホスト機能を利用します。
①Web Stationを起動します。
②作成ボタンを挿入します。
③下記画面に必要情報を入力します。
※1.ホスト名の所に貴方が取得したDDNS名を入力して下さい。
※2.ドキュメントルートはWEBです。
この中にphpMyAdminやWordPressプログラムがあります。
※3.HSTSとHTTP/2にチェックを入れます。
※4.利用するバックエンドサーバやPHPのバージョンを選択します。
保存をするとブラウザにHTTP通信をHTTPS通信にする様に連絡してくれます。
一方、サーバ側もHTTPS通信で動く設定が必要になります。
・phpMyAdmin
HTTPS通信でそのまま利用できます。
・WordPress
コンテンツ自体をHTTPSで作成する必要があります。
メモ
4-3.その他
①WebDAV
WebDAV Serverの「HTTPSを有効にする」で指定したポート番号で接続します。
②VPN
VPN自体はhttp通信ですが、VPNの中で暗号化されます。
以上でSynologyのサーバのセキュリティが格段に向上します。