このトピックでは、アプリケーション・サーバーの Web コンテナーで、Web サーバー・プラグインと
内部 HTTP トランスポートとの間のセキュア接続をインスタンス化するために必要な構成について説明します。
デフォルトでは、この接続は、グローバル・セキュリティーが使用可能になっている場合でもセキュアではありません。
この資料では、IBM HTTP Server の構成を取り上げますが、
この環境での Web サーバー関連の構成は、分散プラットフォームの Web サーバーに特有のものではありません。
始める前に
WebSphere Application Server には HTTP 要求を受け入れる内部 HTTP トランスポートがあります。外部 HTTP サーバーをインストールする場合、Web サーバー・プラグインは、外部 HTTP サーバーからの要求を、アプリケーション・サーバーの内部 HTTP トランスポートに転送する必要があります。HTTP ベンダーの提供する指示に従って、HTTP サーバーをインストールおよび構成します。
http://your-host-URL および https://your-host-URL にアクセスして、HTTP サーバーをテストします。また、Web サーバー・プラグインをインストールしておく必要があります。HTTP Server および Web サーバー・プラグインのインストール手順については、
IBM HTTP Server のインストール
を参照してください。HTTP Server と Web サーバー・プラグインを Solaris x64 に
インストールする場合は、プラグインを有効にして Secure Sockets Layer (SSL) に適したライブラリーをロードするための
追加情報を IBM HTTP Server のインストール
で入手してください。外部 HTTP サーバーと WebSphere Application Server の接続は、グローバル・セキュリティーが使用可能になっている場合でも、デフォルトでは保護されていません。
プロシージャー
- 自己署名個人証明書を作成します。 Web サーバー・プラグインは、独自の秘密鍵ファイルと公開鍵ファイルを保管し、Web コンテナーの鍵ファイルの公開証明書を保管するための鍵リング・ファイルを必要とします。
Web サーバー・プラグイン用の自己署名証明書を作成するには、以下のステップを実行する必要があります。
Web サーバー・プラグインをインストールする場合は、デフォルトの鍵リング plugin-key.kdb が plugin_install_root/etc にインストールされます。
新規のファイルを作成する代わりに、このファイルを使用します。
以下のステップでは新規ファイルが作成されますが、既存ファイルを使用する場合も同様のステップを実行します。
プラグインおよび関連ファイルが参照する鍵リング・ファイルを保管するためのディレクトリーを、
Web サーバー・ホスト上に作成します (例えば、plugin_install_root/etc/keys)。
- プラグインおよび関連ファイルが参照する鍵リング・ファイルを保管するためのディレクトリーを、
Web サーバー・ホスト上に作成します (例えば、plugin_install_root/etc/keys)。
- 鍵管理ユーティリティー (iKeyman) を起動します。
この鍵管理ユーティリティーは、WebSphere Application Server plugin_install_root/bin インストール・ディレクトリーにあります。
- iKeyman メニューから、「Key Database File」>「新規」とクリックします。
- 以下の設定値を入力します。
- 鍵データベース・タイプ
- CMS 鍵データベース・ファイル
- ファイル名
- WASplugin.kdb
- ロケーション
- plugin_install_root/etc/keys/ または任意のファイル
- 「OK」をクリックします。
- パスワード・プロンプトで希望のパスワードを設定し、パスワードを確認します。
- 「Stash the password to a file?」オプションをクリックします。
- 「OK」をクリックします。
- iKeyman メニューで、
「作成」>「New Self-Signed Certificate」とクリックして、
新規の自己署名証明書の鍵ペアを作成します。
以下のオプションを指定します。必要な場合は、残りのすべてのフィールドに入力することもできます。
- 鍵ラベル
- WASplugin
- バージョン
- X509 V3
- 鍵サイズ
- 1024
- 共通名
- your_host_name
- 組織
- IBM
- 国
- US
- 有効期間
- 365
- 「OK」をクリックします。
- 自己署名証明書の公開鍵を抽出します。
この鍵は、後で組み込み HTTP サーバー・ピアがプラグインから開始される接続を認証する際に使用されます。
- このメニューで「Personal Certificates」をクリックし、
作成した WASplugin 証明書を選択します。
- 「Extract Certificate」をクリックします。
証明書をファイルに抽出します。
- データ型
- Base64 エンコード ASCII データ
- 証明書のファイル名
- WASpluginPubCert.arm
- ロケーション
- plugin_install_root/etc/keys または任意のディレクトリー
- 「OK」をクリックします。
- 完了したら、鍵データベースを閉じて、iKeyman ユーティリティーを終了します。
- Web コンテナー用の自己署名証明書を生成します。
- install_root/bin ディレクトリーにある、Java Key Store (JKS) に対応したバージョンの iKeyman を起動します。
- iKeyman メニューから、「Key Database File」>「新規」とクリックします。
- 以下の設定値を入力します。
- 鍵データベース・タイプ
- JKS
- ファイル名
- WASWebContainer.jks
- ロケーション
- app_server_root/profiles/profile_name/etc/keys
または任意のディレクトリー。
- 「OK」をクリックします。
- パスワード・プロンプトで希望のパスワードを設定し、パスワードを確認します。
- iKeyman メニューから、「作成」>「New Self-Signed Certificate」とクリックします。
この例では、次の値が使用されています。
- 鍵ラベル
- WASWebContainer
- バージョン
- X509 V3
- 鍵サイズ
- 1024
- 共通名
- your_host_name
- 組織
- IBM
- 国
- US
- 有効期間
- 365
- 「OK」をクリックします。
- 自己署名証明書の公開鍵を抽出します。
この鍵は、後で Web サーバー・プラグイン・ピアが本製品の組み込み HTTP サーバーから開始される接続を認証する際に使用されます。
- リストの「Personal Certificates」をクリックします。
今作成した WASWebContainer 証明書を選択します。「Extract Certificate」をクリックします。
証明書をファイルに抽出します。
- データ型
- Base64 エンコード ASCII データ
- 証明書のファイル名
- WASWebContainerPubCert.arm
- ロケーション
- app_server_root/profiles/profile_name/etc/keys
- 「OK」をクリックします。
- 鍵ストアおよびトラストストア WebSphere クライアントが、
ここで構成される内部 HTTP ポートに接続している場合、
抽出された自己署名証明書をこの鍵ストアおよび /またはトラストストアの署名者セクションに追加します。
- データベースを閉じて、鍵管理ユーティリティーを終了します。
- 公開証明書を交換します。
- WASpluginPubCert.arm ファイルを、
Web サーバー・マシンから WebSphere Application Server マシンにコピーします。
この場合のソース・ディレクトリーは、plugins_root/etc/keys で、宛先は、app_server_root/profiles/profile_name/etc/keys です。
- WASWebContainerPubCert.arm ファイルを、
本製品のマシンから Web サーバー・マシンにコピーします。
この場合のソース・ディレクトリーは、app_server_root/profiles/profile_name/etc/keys で、宛先は plugin_install_root/etc/keys です。
- 証明書を、Web サーバー・プラグインの鍵ファイルにインポートします。
- Web サーバー・マシンで、
Certificate Management Services (CMS) 鍵データベース・フォーマットをサポートする iKeyman ユーティリティーを起動します。
- iKeyman メニューから、「Key Database File」>「オープン」とクリックし、
作成しておいた鍵データベース・ファイル WASplugin.kdb を選択します。
- パスワード・プロンプト・ウィンドウで、パスワードを入力します。
「OK」をクリックします。
- リストから「Signer Certificates」をクリックし、「
追加」をクリックします。
この操作により、組み込み HTTP サーバー (Web コンテナー) の鍵ストア・ファイルから、以前に抽出された公開証明書がインポートされます。
- データ型
- Base64 エンコード ASCII データ
- 証明書のファイル名
- WASWebContainerPubCert.arm
- ロケーション
- plugin_install_root/etc/keys
- 「OK」をクリックします。 トラステッド署名者公開証明書を表すラベル名を要求するプロンプトが出されます。
- 証明書のラベル WASWebContainer を入力します。
- 完了したら、鍵データベースを閉じて IKeyman を終了します。
- 証明書を、Web コンテナーの鍵ストア・ファイルにインポートします。
- WebSphere Application Server マシンで、
install_root/bin ディレクトリーにある、JKS 対応バージョンの iKeyman を起動します。
- iKeyman メニューから、「Key Database File」>「オープン」とクリックします。
作成しておいた WASWebContainer.jks ファイルを選択します。
- パスワード・プロンプト・ウィンドウで、パスワードを入力します。
「OK」をクリックします。
- リストから「Signer Certificates」をクリックします。
「追加」をクリックします。この操作により、組み込み HTTP サーバー (Web コンテナー) の鍵ストア・ファイルから、以前に抽出された公開証明書がインポートされます。
- データ型
- Base64 エンコード ASCII データ
- 証明書のファイル名
- WASpluginPubCert.arm
- ロケーション
- app_server_root/profiles/profile_name/etc/keys
- 「OK」をクリックします。 トラステッド署名者公開証明書を表すラベル名を要求するプロンプトが出されます。
- 証明書のラベル WASplugin を入力します。
- 完了したら、鍵データベースを閉じて iKeyman を終了します。
- Web コンテナーを Secure Sockets Layer (SSL) をサポートするように変更します。
Web サーバー・プラグインと Web コンテナーの間の構成を完了するには、WebSphere Application Server の Web コンテナーを、先に作成した自己署名証明書を使用するように変更します。
- WebSphere Application Server の管理コンソールを始動します。
- 「セキュリティー」>「SSL」とクリックします。
- 「新規 JSSE レパートリー」をクリックして、レパートリー内に新規エントリーを作成します。
以下の値を入力して、フォームを完成してください。
- 別名
- WebContainerSSLSettings
- セキュリティー・レベル
- HIGH
- 鍵ファイル名
- app_server_root/profiles/profile_nameetc/keys/WASWebContainer.jks
- 鍵ファイル・パスワード
- key_file_password
- 鍵ファイル形式
- JKS
- トラスト・ファイル名
- app_server_root/profiles/profile_nameetc/keys/WASWebContainer.jks
- トラスト・ファイル・パスワード
- trust_file_password
- トラスト・ファイル形式
- JKS
- 2 つの当事者間で相互に SSL を使用する場合は、「
クライアント認証」オプションを選択します。
- 「OK」をクリックします。
- 管理コンソールで構成を保管します。
- 「サーバー」>「アプリケーション・サーバー」>「server_name」をクリックします。
- 新規トランスポート・チェーンを作成する場合は、トランスポート・チェーン・ウィザードを使用して、セキュア・ポート番号を指定します。 例えば、9443 を指定します。
仮想ホストにも同じポート番号を追加する必要があります。WCInboundDefaultSecure トランスポート・チェーンまたは新規作成したトランスポート・チェーンを変更する場合は、「SSL インバウンド・チャネル」をクリックして、SSL レパートリーを更新し、新規作成した JSSE レパートリーを使用します。
- 「環境」>「仮想ホスト」>「default_host」とクリックして、新規の仮想ホスト項目を追加します。
- 「追加プロパティー」の下で、「ホスト・エイリアス」>「新規」とクリックします。
- ホスト名を入力して、トランスポート・チェーンに対して指定したのと同じポート番号を指定します。
例えば、ポート番号に 9443 を指定します。
- 「OK」をクリックします。
- まだ定義されていない場合は、ポート 443 にホスト・エイリアスを追加します。
- パネル上部の「保管」をクリックします。
- Web サーバー・プラグイン・ファイルを変更します。 実稼働環境で、
セキュア・トランスポート定義、ポート 9443 を plugin-cfg.xml ファイルに追加します。
管理コンソールで以下のステップを完了し、Web サーバー・プラグイン・ファイルを変更します。
- 適切な WASplugin.kdb および WASplugin.sth ファイルが Web サーバー上に存在することを確認してください。
次のステップで、Web サーバーにある plugin-cfg.xml ファイルを変更する必要があります。
plugin-cfg.xml ファイル内の WASplugin.kdb および WASplugin.sth ファイル
両方に対するローカル・パスを指定する必要があります。
- 「サーバー」>「Web サーバー」>「Web_server_name」をクリックします。
- 「追加プロパティー」の下の「プラグイン・プロパティー」>「カスタム・プロパティー」をクリックします。
- 「新規」をクリックして、鍵リング・ロケーションのプロパティー情報を追加します。
鍵リング・ロケーションに関する次の情報を入力します。
- 名前
- KeyringLocation
- 値
- plugin_install_root/etc/keys/WASplugin.kdb
- 「新規」をクリックして、stash ファイル・ロケーションのプロパティー情報を追加します。
stash ファイル・ロケーションに関する次の情報を入力します。
- 名前
- StashfileLocation
- 値
- plugin_install_root/etc/keys/WASplugin.sth
- 管理コンソール・パネル上部の「保管」をクリックして、すべての変更を保管します。
- Web サーバーから Web サーバー・プラグインにアクセスする場合は、「サーバー」>「Web サーバー」>「Web_server_name」をクリックしてから、「プラグインの生成」オプションをクリックします。
プラグイン構成ファイルの自動伝搬のセットアップがない場合は、アプリケーション・サーバー・マシンから Web サーバー・マシンに plugin-cfg.xml ファイルをコピーする必要があります。
- アプリケーション・サーバーを再始動します。
- 以下のように、セキュア接続をテストします。
- ポート 9443 を使用して、WebSphere Application Server で Web アプリケーションにアクセスして、セキュア接続をテストします。 例えば、https://your_server_address:9443/snoop です。
- 製品に直接アクセスするブラウザー・テストが正常に終了したら、
ポート 443 を使用して、Web サーバーを経由するセキュア接続をテストします。 例えば、
https://your_server_address:443/snoop または https://your_server_address/snoop です。
- クライアント側の証明書が要求されたときに、
公開鍵および秘密鍵を持つ正しい証明書をブラウザーにインポートし、セキュア接続をテストします。 このステップは、オプションであることに注意してください。
前のステップで「クライアント認証」オプションを選択した場合のみ、このステップで指定される指示に従ってください。
- Web サーバー・マシンで、
CMS 鍵データベース・ファイルをサポートする iKeyman ユーティリティーを起動します。
iKeyman ユーティリティーは、IBM HTTP Server にもバンドルされています。
- プラグイン用の鍵ファイル、plugin_install_root/etc/key を開きます。
プロンプトが表示されたら、パスワードを入力します。
- 個人証明書の下にある「WASplugin certificate」をクリックします。
「エクスポート」をクリックします。
- 証明書を PKCS12 形式で、ファイル (例えば plugin_install_root/etc/key/WASplugin.p12) に保管します。
PKCS12 証明書ファイルを保護するためのパスワードを入力します。
- 鍵ファイルを閉じて、iKeyman を終了します。
- 保管した WASplugin.p12 ファイルを、
本製品のサーバーへのアクセスに使用するクライアント・マシンにコピーします。
- PKCS12 ファイルをブラウザーにインポートします。
次に https://your_server_address:9443/snoop にアクセスします。
- 前のステップで、「クライアント認証」オプションを選択した場合、ブラウザーで、どの個人証明書を接続に使用するかが問われます。
証明書を選択し、接続作業を続行します。
- 製品に直接アクセスするブラウザー・テストが正常に終了したら、
ポート 443 を使用して、Web サーバーを経由する接続をテストします。例えば、https://your_server_address:443/snoop です。
結果
IBM HTTP Server のプラグインと内部 Web サーバーは、SSL 用に構成されています。