IIS での基本的な SSL 設定方法と簡単な仕組み (Windows 2012編)
ここでは Windows 2012 上の IIS のウェブサイトで、SSL を有効にする方法を説明します。
以前のバージョンの IIS を用いて「SSL の設定方法 (IIS 7.0 以降)」でも説明しています。
サーバー証明書を作成するために CSR を作成して、署名して・・・という流れ自体は基本的に同一ですから、そちらのページも参考にしてください。
ちなみにサーバー証明書の発行自体については、私の手元の PC に設定している自前の証明機関を利用しています。
それでは、早速みていきましょう。
CSR の作成
サーバー証明書を作成するには、まずは CSR を作成しなければなりません。証明機関にて CSR を処理して、サーバー証明書が作成されます。
IIS マネージャを利用する方法
CSR を作成するにはいくつか方法がありますが、IIS を利用している場合は通常は IIS マネージャを利用して CSR を作成します。
また作成した CSR に紐付いた秘密鍵の情報などは Windows の証明書ストア (Certificate Store) というセキュアな格納場所に保存されます。 証明書ストアは管理コンソールの証明書スナップイン等で中身をみることができます。
蛇足ですが、プログラミングインターフェイスもあり、それを利用する場合は「証明書ストアに格納されている証明書の列挙」を参考にしてください。
OpenSSL を利用する方法
OpenSSL を利用して CSR を発行することも可能です。
尚、この場合は秘密鍵の情報及び CSR の情報はコマンドで指定したファイルに明示的に書き出されているので分かりやすいですね。
CSR の確認
念のため外部ツールを用いて、作成した CSR をチェックしてみましょう。
シマンテックが Symantec CryptoReport というオンラインツールを公開していますので、これで CSR を確認してみます。
コモンネーム等の情報の他、署名アルゴリズムやキーの情報も確認できます。
CSR の情報が意図したものであることを確認できたら、サーバー証明書の発行機関に提出します。
CSR の提出とサーバー証明書の取得
SSL を設定するためのサーバー証明書は、様々なベンダーが発行するサービスを提供しています。
例えば最大手のひとつのシマンテック社では、"SSL サーバー証明書" とか "サーバー ID" という商品名で、サーバー証明書の発行サービスを行っています。
その他にも安くて良いサービスも多数あります。
ここでは自前でたてた証明機関でサーバー証明書を発行します。実施方法は次の資料を参考にしてください。
「OpenSSL を用いて自前の証明機関でサーバー証明書を発行する」
サーバー証明書の設定
さて証明機関発行のサーバー証明書を入手したら、IIS マネージャから設定を継続します。
Server Certificates (サーバー証明書) にて、右側のアクションにて Complete Certificate Request... を選択します。
ここでサーバー証明書のファイルを指定します。フレンドリー名はコモンネームにしておくとわかりやすいと思います。
OK をクリックすると、証明書がインストールされます。
証明書スナップインでみると、Personal/Certificates の中に証明書がみえるようになります。
SSL 設定の動作確認
以上を実施した上でウェブサイトのバインディング設定から、HTTPS の設定を行い、 サーバー証明書を選択すればブラウザから https でアクセス可能になるはずです。
※ここでは hosts に www.example1.com を構成してローカルからアクセスしています。
証明書の情報をみると確かに上で設定したサーバー証明書の情報が使われていることが分かります。
以上、ここでは IIS マネージャで CSR を作成し、IIS にサーバー証明書をインストールする方法を紹介しました。