前回は、Windows Server 2008から加わったリモートアクセスVPN用のプロトコル「SSTP(Secure Socket Tunneling Protocol)」の概要と大まかな導入手順を取り上げた。今回は、具体的な操作手順について説明しよう。
SSTPが機能するために必要な条件
SSTPを機能させるには、いくつかの条件がある。まず、VPNクライアント側の条件は以下の通りだ。
(1) VPN用の接続設定を作成して、VPNプロトコルを明示的に[SSTP]に指定する。接続設定の作成手順そのものはPPTP用と同じなので、追ってまとめて解説することとしたい。
(2)サーバ証明書の発行に使った認証局のCA証明書を、Windowsの証明書ストアのうち[ローカルコンピュータ]-[信頼されたルート証明書]以下に格納する(オレオレ証明書を使用している場合に必要な条件)。
一方、VPNゲートウェイ側の条件は以下の通りだ。
(1)サーバ証明書を、Windowsの証明書ストアのうち[ローカルコンピュータ]-[個人]以下に格納する。。
(2)サーバ証明書の発行に使った認証局のCA証明書を、Windowsの証明書ストアのうち[ローカルコンピュータ]-[信頼されたルート証明書]以下に格納する(オレオレ証明書を使用している場合のみ)。。
(3)サーバ証明書の発行時にホスト名を指定する必要があるほか、クライアント側で指定する接続先もそれと一致させなければ通信できない。そこで指定するホスト名を使ってクライアントが接続できるように、インターネット側の名前解決環境を整えておく必要がある。。
実は、本連載の第66回で解説した手順を使ってSSL用のサーバ証明書を要求・インストールすると、サーバ証明書はWindowsの証明書ストアのうち、[現在のユーザー]-[個人]以下に格納する。このままではSSTPが機能しないので、いったんエクスポートしてから正しい証明書ストアにインポートし直す作業が必要になる。
そのため、サーバ証明書を要求する際にエクスポート可能としてマークしておかないと、配置替えができず、結果としてSSTPを使えなくなってしまう。第66回で、[エクスポート可能なキーとしてマークする]を既定値のオフからオンに変更するよう指示していたのは、そういう理由だ。
サーバ証明書の配置替え
VPNゲートウェイにおけるサーバ証明書の配置替え作業には、本連載の第67回で取り上げた、MMCスナップイン[証明書]が必要になる。その[証明書]管理ツールを使ってサーバ証明書の配置替えを行う際の手順は、以下の通りだ。
(1) [証明書]管理ツール左側のツリー画面で、[証明書 - 現在のユーザー]-[個人]-[証明書]を選択する。
(2)画面中央の一覧に、サーバ証明書の一覧を表示する。その中からエクスポートする証明書を選択して、[操作]-[すべてのタスク]-[エクスポート]、あるいは右クリックして[すべてのタスク]-[エクスポート]を選択する。
(3)「証明書のエクスポートウィザード」が起動する。2画面目で、[はい、秘密キーをエクスポートします]を選択する。
(4)ファイル形式を指定するウィザード3画面目は、既定値の[Personal Information Exchange - PKCS #12 (.PFX)]のまま続行する。。
(5)ウィザード4画面目で、パスワードを指定する。後でインポートし直す際に、ここで指定したパスワードを使うので、忘れないように注意したい。。
(6)ウィザード5画面目で、ファイル名を指定する。どこにどういうファイル名でエクスポートしたかをメモしておくと良いだろう。
(7)最終画面で[完了]をクリックすると、エクスポートを行う。その際に表示する2個のダイアログでは、いずれも[OK]をクリックする。
(8)[証明書]管理ツールに戻ったら、今度は左側のツリー画面で、[証明書 (ローカルコンピュータ)]-[個人]-[証明書]を選択する。その状態で、[操作]-[すべてのタスク]-[インポート]、あるいは右クリックして[すべてのタスク]-[インポート]を選択する。
(9)「証明書のインポートウィザード」が起動する。2画面目で指定するインポート元のファイルは、先にエクスポートしたサーバ証明書のファイルだ(エクスポートした場所やファイル名を忘れると、ここで困ってしまう)。
(10)ウィザード3画面目で、エクスポートした際に入力したものと同じパスワードを指定する。
(11)ウィザード4画面目で、サーバ証明書の保管場所を指定する。[証明書をすべて次のストアに配置する]を選択してから、右側の[参照]をクリックすると表示するダイアログで、最上部の[個人]を指定する。
(12)最終画面で[完了]をクリックすると、インポートを行う。インポート完了後に、[証明書]ツール左側のツリー画面で、[証明書(ローカルコンピュータ)]-[個人]-[証明書]を選択して、サーバ証明書が画面中央に現れているかどうかを確認する。
(14)さらに、用途が「すべて」あるいは「サーバ証明書」となっている他の証明書が、同じ証明書ストアにないかどうかも確認する。画面の例では、CA証明書が一緒に存在しており、これは用途が「すべて」なので該当する。用途が重複する証明書が複数あるとSSTPが動作しないため、不要な証明書は削除する。
(15)[証明書 - 現在のユーザー]-[個人]-[証明書]以下にあるサーバ証明書を削除して、重複を防ぐようにする。
クライアントにおけるCA証明書のインポート
最後に、サーバ証明書の発行に使用した証明書サービスのCA(Certificate Authority)証明書を、クライアントPCにインポートする。これを行わないと、「オレオレ証明書」を使ったSSL暗号化が成立しない。
CA証明書に関するエクスポートとインポートの手順自体は、これまでに解説してきたものと同じ要領で行える。つまり、証明書サービスが動作しているコンピュータでCA証明書をエクスポートして、それをクライアントPCでインポートするわけだ。
ただし、インポートする先の証明書ストアに注意する必要がある。SSTPを正しく機能させるには、クライアント側でもサーバ側と同様に、CA証明書を[証明書(ローカルコンピュータ)]-[信頼されたルート証明機関]-[証明書]に置く必要があるからだ。
そのため、[証明書]管理ツールでは、左側のツリー画面で[証明書(ローカルコンピュータ)]-[信頼されたルート証明機関]-[証明書]を選択した状態で、[操作]-[すべてのタスク]-[インポート]、あるいは右クリックして[すべてのタスク]-[インポート]を選択する必要がある。
インポート完了後に、左側のツリー画面で[証明書 (ローカルコンピュータ)]-[信頼されたルート証明機関]-[証明書]を選択して、CA証明書が画面中央に現れているかどうかを確認する。現れていればOKだ。
本連載の想定環境では、VPNゲートウェイが証明書サービスを兼ねており、同じサーバの中で証明書の発行を行っている。そのため、VPNゲートウェイはCA証明書を保持した状態になっており、追加作業は必要ない。もしも両者が別のコンピュータであれば、VPNゲートウェイについても同じ要領でCA証明書のインポートが必要になる。