rabbit51

it's since Nov.30 2005
May.29 2014, transferred from broach

Synology DS-216JでLet's Encryptからサーバ証明書(Free)を得る

2017-12-01 11:30:00 | DS-216J
DS-216JのPhoto Stationによるデジカメ写真配布を試みた。PhotoStationは、httpによるログイン認証があるため、httpsで接続することを検討した。https(TLS接続)の利用には、サーバ証明書が必須である。Freeの電子証明書を調査した結果、Synology DS-216Jから自動で取得できる「Let's Encrypt」を導入することとした。「Let's Encrypt」は、ドメイン認証のため ietf「ACME(Automated Certificate Management Environment)ドラフト」に準じて認証を行う。Let's Encryptから電子証明書を取得できるcertbotと言うツールが電子フロンティア財団から提供されている。DS-216Jは、この認証を自動で行う仕組みを提供しているので、certbotの利用があるのか内部を確認してみたが、使用されていないようだった。自動ドメイン認証の実行には、「Let's Encrypt」とDS-216Jの間で、ポート80(http)とポート443(https)を使った通信をヤマハルータNVR-500配下で確保する必要がある。
PhotoStationと同様に、QuickConnectを使う事例は、多々あるが、「使わない」運用とするため、下記構成で設計した。

現在、PhotoStation実行のためインターネットからhttpポート3080で受けた接続をDS-216Jのhttpポート80で扱うよう設定されている。Let's Encryptとの自動ドメイン認証及び証明書取得のため、httpポート80をDS-216Jのhttpポート80へ、さらにhttpsポート443をDS-216Jのhttpsポート443へ接続する構成とし、DS-216J上のLet's Encrypt証明書取得ツールを実行することとした。DS-216J上のhttpエンジンは、certbot確認時に「nginx」の使用を確認した。

(1)NVR-500に静的IPマスカレード(NAPT)設定を加える
NVR-500の簡易設定でDS-216Jへのポート「80->80」「443->443」設定を加える

同時に、DS-216Jのポート80及び443への接続許可設定をファイアウォールに設定する。簡易設定では、自動で追加される。「3080->80」設定時に追加された許可設定に加え、「80->80」設定のための接続許可設定が追加され、同じ許可設定が2個発生する。不要だが、害がないのでそのままとする。


(2)DS-216JのDSMで「セキュリティ」「証明書」「追加」を行う
Synologyの自己署名証明書がインストールされている


追加ボタンで既存の証明書を置き換える作成を行う


「Let's Encrypt」から取得して、既存の証明書と置き換える設定とする


「ドメイン名」と連絡先「Eメールアドレス」を設定する
ドメイン名と言うと一般的にドメイン部の名称で、「somehostname.ddns.netvolante.jp」で言えば「ddns.netvolante.jp」の認識である。
ヤマハのダイナミックDNSを利用しているためこのドメイン管理権を保持していない。Let's Encryptの翻訳サイトオリジナルサイトを調べるといわゆる「FQDN(Fully Qualified Domain Name)」をドメイン認証するようだ。
ドメイン名: DDNSに登録したFQDNを設定(ex. somehostname.ddns.netvolante.jp)
Eメール: 有効期限などの通知を受けるメールアドレスでドメイン認証するドメイン内のアドレスで無くて良い
サブジェクトの別名: 複数のDDNSを使用している場合に設定するのだろうか?未使用にしておく。


ドメイン認証、証明書取得、http(nginx)の再起動が行われる


取得したサーバ証明書


取得したサーバ証明書の詳細


証明書のエクスポートを実行する。エクスポートされた証明書は、ダウンロードディレクトリのarchivフォルダに「cert.pem」「chain.pem」「privkey.pem」が保存される。
エクスポートされた秘密鍵は、暗号化されていないので、opensslなどで処置しておくのが良い。
openssl rsa -des3 -in privkey.pem -out privkey.pem
証明書「cert.pem」の内容をテキスト化してみる
openssl x509 -text -noout -in cert.pem > cert-info.txt



証明書の有効期間は、90日である。2018年2月28日までに更新する必要がある。Let's Encryptのcertbotでは、定期的に更新実行を行うと有効期限を確認し、有効期限内で自動更新してくれるようだ。Synology DS-216JのDSM(Disk Station Manager)の「セキュリティ」「証明書」機能も自動更新してくれるようだ。

証明書の用途(Key Usage/Extended Key Usage)定義によれば、デジタル署名と暗号化に使用できる(httpサーバ機能のサーバ認証やクライアント認証など)。
ヤマハのNVR-500にも「Let's Encrypt」のサーバ証明書をインストール確認する予定。

(3)ブラウザによる確認
iPhoneのSafariで確認


iPhoneにインストールした「DS Photo」の設定を変更してアクセスして観る
設定画面からSSLで接続されているか確認が出来ない。

一度、ログオフして、ログイン画面で「HTTPS」をオンにして再ログインする必要がある


アルバム表示


macOS SierraのSafariで確認


Windows10のMS Edgeで確認
証明書詳細確認の方法が解らない。。。。。


Windows10のMSIEで確認


--- 2018/8/6 追記 ---
Synology DS-216JでLet's Encryptの自動更新#2(2018/4/8)
Synology DS-216JでLet's Encryptの自動更新#3(2018/4/13)
Synology DS-216JでLet's Encryptの自動更新#4(2018/6/22)

コメント   この記事についてブログを書く
« Synology DS-216JのPhotoStat... | トップ | ヤマハNVR-500にLet's Encryp... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

DS-216J」カテゴリの最新記事