清水理史の「イニシャルB」
Let's EncryptでNASにもHTTPS通信を Synologyならウィザードで簡単導入
(2016/5/23 06:00)
2016年4月から正式サービスが開始された「Let's Encrypt」。今まで有料だったSSL/TLS証明書が、無料で利用できるサービスとして注目を集めている。そんなLet's Encryptを手軽に導入できるのがSynologyのNASだ。実際に、どれくらい簡単に導入できるのかを試してみた。
マニア心のくすぐり方をわかってる
以前、本コラムでStartComのサーバー証明書をSynologyのNASに導入する方法を解説したが(http://internet.watch.impress.co.jp/docs/column/shimizu/20141208_678715.html)、それに比べてLet's Encryptの手軽さと言ったら、段違いとはまさにこのことだ。
もちろん、Let's Encryptそのもののは、Linuxなどのサーバーに導入しようとするとまだまだハードルは高い。
しかし、こういった点がSynologyのNASのすごいところで、こういった話題の機能を設定画面の1つの項目として、さほどアピールすることなく、しれっと搭載してくるばかりか、それこそマウスで数クリックするだけで誰もが簡単に導入できるUIをしっかりと作りこんでくる。
「こんな機能がほしかったんだろ、ホレ、ホレ」とこちらの思惑を見透かされているようなやり口は、くやしいが、うれしくもあるところで、だからファンを集めるのかと妙に納得させられるところでもある。
最近、PCやスマホでは滅多に見かけなくなってきた、特定のマニアの心をピンポイントでくすぐる製品とは、まさにこういうもののことを指すのだろう。
NASに証明書が必要か?
さて、少々、話題がずれたのでもとに戻そう。Let's Encryptについて詳しく知りたいという人は、まず以下の記事にざっと目を通しておくといい。
・HTTPSの証明書を無料で発行する「Let's Encrypt」、正式版へ移行
http://internet.watch.impress.co.jp/docs/news/20160414_753266.html
・証明書を無料で発行、HTTPSの導入を支援する「Let's Encrypt」2015年夏開始
http://internet.watch.impress.co.jp/docs/news/20141119_676866.html
GoogleがSEOでHTTPSのサイトを優遇するようになったことからもわかる通り、世の中的な流れは、脱HTTPという方向で進んでいる。
重要なデータのやり取りやプライベートなコミュニケーションにインターネットが使われるようになったのだから、その通信で暗号化が必要とされることに異論はないだろう。
でも、別にNASには必要ないんじゃないか? という声も聞こえてきそうだが、NASはLAN内で使うファイルサーバー的な役割から、クラウドストレージのようなデータの同期やインターネット経由でのファイルの受け渡しなどに、その用途を広げつつある。
筆者も原稿データの受け渡しに日常的にNASを活用しているが、そういったデータをHTTPでやり取りするというのは、あまり好ましくない状況で、当然、HTTPSによる暗号化通信でやりとりできることが理想なわけだ。
しかも、最近、というか具体的にはWindows 10のMicrosoft Edgeを使っている相手に、ファイル転送用の共有リンクを送信した場合によくみられるのだが、HTTPのリンクの場合「コンテンツは有効なセキュリティ証明書によって署名されていないため、ブロックされました」と、ファイルの送信に失敗するケースがまれにみられる(Chromeなどなら問題ない)。
もはや、HTTPではファイル転送することも許されない時代になってきたということなのだろう。
もちろん、いわゆるオレオレ証明書を使ってもかまわないが、せっかく無料で、しかも手軽にLet's Encryptが使えるのだから、これを使わずに眠らせておく手はないだろう。
まずは準備
それで、Let's EcnryptをSynologyのNASに導入してみよう。
前提条件としては、DSM 6.0以降が搭載されていること。バージョンが古い場合は、あらかじめアップデートしておこう。今回は、手元に余っていたDiskStation DS212を利用した。
また、現状を確認しておこう。おそらく多くのユーザーは、QuickConnectを利用した外部アクセスが有効化されているはずで、ファイル共有のリンクを作成した場合「gofile.me」ドメインを利用したURLが生成されるようになっているはずだ。
Let's Encryptを利用する場合、自分のドメインに対して証明書を発行してもらう必要があるため、このままでは利用できない。もちろん、ドメインを取得して割り当ててもいいが、今回はSynologyのNASで無料で利用できるDDNSサービスを利用する。設定画面の「外部アクセス」から「DDNS」を有効化し、好きな名前をNASに割り当てておこう。
なお、Let's Encryptでは、登録時の確認作業にポート80での通信を必要とする。外部から80の通信が遮断されている場合は、NASに対して通信できるようにルーターなどで許可しておく必要がある。
ここまで準備ができたら、いよいよ証明書を取得する。「設定」の「セキュリティ」で「証明書」タブをクリックすると、標準では自前の証明書が登録されている。「追加」をクリックして、ウィザードを起動し、ここに新しいLet's Encryptの証明書を追加しよう。
これでLet's Encryptの証明書の登録は完了だ。簡単すぎてかえって不安になるが、きちんと登録されているので問題ない。
この状態で、外部からNASの管理画面にHTTPS(標準のポートは5001)でアクセスしてみると、何の警告も表示されずにアクセスでき、アドレスバーにきちんと鍵のマークが表示されることが確認できるはずだ。
ファイル共有時のリンクをHTTPS化する
ファイル共有時にHTTPSを利用する場合は、さらにもう少し設定が必要だ。
まずは、URLを生成する際に標準のgofile.meを利用することを中止する。QuickConnetの設定画面で「許可」の項目から「ファイルの共有」のチェックマークを外しておく。これで、FileStationなどからファイルを共有した際に、gofile.meではなく、DDNSのドメイン名でURLが生成されるようになる。
続いて、必要に応じてルーターの設定を変更する。gofile.me、すなわちQuickConnectを利用する場合、外部の中継サーバーを経由するため内部からポートを開けてくれるので、ルーター側は特に何も設定する必要はないのだが、DDNSのアドレスを利用する場合は外部から直接NASにアクセスするため、通信を許可する必要がある。
以上の設定が完了したら、FileStationなどから共有リンクを作成した際に、以下の画面のようにDDNS名でURLが生成されるようになる。なお、共有リンクをHTTPSで生成するには、設定画面にHTTPSでアクセスする必要があるので注意しよう。
最後にひと手間
以上で設定は完了だが、最後にひと手間かけておくとさらに使いやすい。Let's Encryptの証明書は、DDNS名に対して発行されているので、ローカルのPCから「https://192.168.2.3:5001」などとIPアドレスを指定してアクセスすると、名前が異なることから証明書のエラーが発生する。
これを避ける方法はいくつかあるが、もっとも簡単なのはPCのhostsファイルを使うことだ。「C:\Windows\System32\drivers\etc」にある「hosts」ファイルをメモ帳などで編集し、NASのIPアドレスとDDNSの対応を記述しておく(DNSサーバーが使えるならそちらにレコードを追加してもいい)。
これで、PCからもDDNS名でNASにアクセスできるようになり、HTTPSでアクセスしても証明書のエラーは表示されなくなる。
また、Synologyの設定画面の「ネットワーク」の「DSM設定」で「HTTP接続をHTTPSに自動リダイレクトする」を有効にしておくと、HTTPでアクセスしても自動的にHTTPS接続に切り替わるようになる。これは好みで設定しておくといいだろう。
以上、SynologyのNASでLet's Encryptを有効にしてみたが非常に簡単だった。欲を言えば、リンクURLの切り替えまでウィザードで設定してくれるとうれしいが、まあ証明書はファイル転送以外での目的でも使うので、現状の設定でも十分に手軽と言っていいだろう。
Let's Encryptのような取り組みもすばらしいが、それをいち早くサポートし、誰でも手軽に使えるようにしたSynologyの功績も大きいと言えるだろう。