過去2回の記事で、自前の証明書サービスで発行した「オレオレ証明書」を使用する手順を解説した。しかし、インターネット経由で不特定多数に対してSSL(Secure Socket Layer)通信を可能にする時は公的な認証力がある認証局からサーバ証明書を入手しなければならない。
そこで、そのサーバ証明書の入手手順とサーバ証明書を入手した後でSSLを有効にする際の手順を解説する。
CA利用時に必要となる証明書要求ファイルの作成
CAにサーバ証明書の発行を請求する際は要求ファイルを作成する必要がある。その作業は、SSLを動作させるサーバで行う必要がある。というのは、要求ファイルを作成する過程で鍵ペアの生成を行ってしまうからだ。別のコンピュータで作業を行うと、鍵ペアのうち秘密鍵が置いてけぼりになってしまう。
Windows Server 2008で要求ファイルを作成するには、[インターネットインフォメーションサービス(IIS)マネージャ]管理ツール(以下IIS管理ツール)を使用する。
(1) IIS管理ツール左側のツリー画面で、サーバ名を選択する。
(2)続いて、画面中央の一覧にある[サーバー証明書]をダブルクリックする。
(3)画面右端に[証明書の要求の作成]というリンクが現れるので、それをクリックする。
(4)続いて表示する画面で、要求ファイルを作成する際に必要とされる、以下の項目を指定する。
■サイトの登録名と鍵のビット長 →登録名は、できるだけわかりやすい名前を指定する。鍵のビット長は長いほうが安全だが、安全性と処理能力のバランスを考慮して、1,024ビット程度を使用することが多い。
■組織の正式名称と部門名 →会社や団体の名前を正しく記述する。正式名称の表記については、認証局がガイドラインを示している場合もあるので、事前に確認しておくとよい。
■サイトの一般名 →SSLを動作させるサーバのFQDNのこと。つまり、FQDNを決めておかないとデジタル証明書の取得ができないということである
■地理情報→組織の所在地に関する情報を指定する
■証明書の要求ファイル名→「certreq.txt」など、任意のファイル名を指定する
これらの情報をもとに生成した要求ファイルを使って、認証局にデジタル証明書の取得を申請する。認証局はそれを受けて、サーバ証明書を発行したうえで、認証局自身の証明書を使ってデジタル署名を行う仕組みだ。認証局がデジタル署名した公開鍵(サーバ証明書)は真正の保障が成立するので、公的な信頼性を確保できるという理屈である。
認証局がデジタル署名したサーバ証明書は、電子メールの本文あるいはファイルの形で送られてくるので、それをIISにインストールする必要がある。
電子メールの本文に、証明書をエンコードした形で記述してある場合、受け取ったメールの本文中で「-----BEGIN CERTIFICATE-----」から「-----END CERTIFICATE-----」までの内容をテキスト エディタにコピー&貼り付けして、拡張子「*.cer」を持つファイル名を付けて保存する。このとき、「-----BEGIN CERTIFICATE-----」と「-----END CERTIFICATE-----」もコピー&貼り付けの対象に含めなければならない。
しかし、保存しただけでは単なるファイルで、まだWindowsの証明書ストアに組み込まれていない。そこで、サーバ証明書をWindowsの証明書ストアに組み込む必要がある。Windows Server 2008の場合、以下の手順となる。
(1)IIS管理ツール左側のツリー画面で、サーバ名を選択する。
(2)続いて、画面中央の一覧にある[サーバー証明書]をダブルクリックする。
(3)画面中央の証明書一覧部分で右クリックして[インポート]を選択するか、画面右端にある[インポート]というリンクをクリックする。
(4)インポート元として、先に保存しておいた「*.cer」ファイルを指定する。これでサーバ証明書のインポートを行える。
SSLの有効化
サーバ証明書をWindowsの証明書ストアにインポートすると、SSLの有効化が可能になる。ただし、Windows Server 2008ではバインド設定も必要で、具体的な操作手順は以下のようになる。
(1)IIS管理ツールのツリー画面で、SSLを動作させたいWebサイトを選択する。
(2)[操作]-[バインドの編集]、あるいは右クリックして[バインドの編集]を選択する。
(3)続いて表示するダイアログには、初期状態では「http」と「80番」のバインドしか登録していない。そこで、[追加]をクリックする。
(4)続いて表示するダイアログで、[種類]を「https」、IPアドレスは[未使用のIPアドレスすべて]のまま、[ポート]を「443」として、さらに[SSL証明書]リストボックスで、[SSL証明書]を「未選択」から導入済みのサーバ証明書に変更する。
(5)[OK]をクリックして元のダイアログに戻ったら、以下のようにHTTPSのバインドが登録できたかどうかを確認する。問題がなければ[閉じる]をクリックする。
(6)IIS管理ツールに戻ったら、ツリー画面でSSLを使用するWebサイトを選択して、画面中央にある[SSL設定]をクリックする。
(7)[SSLが必要]チェックボックスと[128ビットSSLが必要]チェックボックスをオンにして、画面右側の[適用]をクリックする。これでSSLが有効になる。