2016年8月19日金曜日

StartSSL と QNAP

QNAP の Web サーバーで HTTPS 通信を可能にするために、StartSSL で無料の SSL 証明書を取得した。

先に、清水理史の「イニシャルB」や Qiita「新しくなったStartSSLを使ってSSLサーバ証明書を発行する」などを参照したが、清水さんの記事はやや古いためか、「正直、疲れた……」という話だったので、先入観で結構大変なのかと思い、数日間作業に着手するのを避けていたが、実際にやってみるとそうでもなかった。記事の頃よりは使い易くなったのかもしれない。

1. StartSSL アカウント

ここのアカウントは、一般のパスワードによるログイン方式は避けてあるので、基本的にはメール認証による「ワンタイムパスワード方式」となる。清水さんの記事や他の情報では、「クライアント認証方式」の設定の方法が述べられているが、必須ではない。毎度のメールでのワンタイムパスワード認証が面倒臭い場合に、クライアント認証方式も使えるようにしてある、という感じである。一旦 SSL 証明書を取得すれば、1 年間は有効なので、それほど頻繁にアクセスするわけでもないから、メール認証で十分である。

2. サイト認証

これは参照した情報では皆が、メールによるサイト認証の方法しか解説していなかったが、僕は独自ドメインのメールアドレスを設定するのが面倒臭かったので、「Website Control Validation」のリンクをクリックして、Validation 用の HTML をダウンロードし、ウェブサイトのルートに設置してから、認証ボタンを押して、認証を成功させることができた。Google のウェブサイトマスターで、そのサイトのオーナーであることを認証する時の方式と同じである。

3. 鍵の作成

これも、参照した情報では誰もやっていなかったが、僕の場合、Windows は使っていないので、OpenSSL コマンドを使って自前で作成し、StartSSL のテキストボックスに CSR をコピー&ペーストした。

openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr

ちなみにこのコマンドでは、Email などの最後の 3 つの情報については、通常は未入力にするようである。

以上で、証明書が、zip にパッケージされた形でダウンロードして入手できるようになるので、あとは、QNAP 側での作業となる。

ただし、openssl コマンドで作成した秘密キーは、暗号化を解除したものを QNAP で使用する必要があるので、StartSSL のツールボックスで解除したものをコピーして使う(後述。また清水さんの記事でも解説されている)。

4. QNAP に証明書をアップロードする

「システム設定 > セキュリティ > 証明書とプライベートキー」で、ApacheSever.zip の中の 2_XXX.crt を証明書としてアップロード、1_root_bundle.crt を中間証明書として(「発行者の中間証明書をアップロード」をチェックして)アップロード、秘密キーには、StartSSL のツールボックスの「Decrypt Private key」で暗号化を解除した秘密キーをペーストしてアップロードする。


以上で、めでたく、QNAP 上の独自ドメインで HTTPS が使えるようになった。スマートフォンの Chrome ではセキュリティーエラーが出ていたので焦ったが、キャッシュが更新されていなかっただけで、しばらく経つと解消された。

現状では、一つのドメインしか SSL 証明書を使っていないが、SNI は QNAP の Web インターフェースでできるのだろうか?

0 件のコメント:

コメントを投稿