ナビゲーションをスキップ

WebLogic Security の管理

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

SSL のコンフィグレーション

以下の節では、WebLogic Server に対して SSL をコンフィグレーションする方法について説明します。

注意 :この章は、このリリースの WebLogic Server のセキュリティ機能を使用する WebLogic Server デプロイメントと互換性セキュリティを使用するデプロイメントに適用されます。

SSL のコンフィグレーションは省略可能ですが、プロダクション環境では SSL を使用することをお勧めします。

 


SSL の概要

セキュア ソケット レイヤ (Secure Sockets Layer:SSL) では、ネットワーク接続している 2 つのアプリケーションが互いの ID を認証できるようにするとともに、アプリケーション間でやり取りされるデータを暗号化することで、セキュアな接続を実現します。認証を使用すると、サーバとクライアント (省略可能) はネットワーク接続の相手側アプリケーションの ID を検証できます。ネットワーク経由で送信されるデータは暗号化されるので、予定されている宛先以外には解釈できません。

WebLogic Server の SSL は、SSL 3.0 および TLS (Transport Layer Security) 1.0 仕様の実装です。

WebLogic Server は、専用のリスン ポート (デフォルトは 7002) で SSL をサポートします。SSL 接続を確立するには、接続 URL に SSL リスン ポートと HTTPS スキーマを指定して (https://myserver:7002 など)、Web ブラウザから WebLogic Server に接続します。

SSL を使用すると、計算処理による負荷が大きくなり、接続のオーバーヘッドが増大します。必要なとき以外は開発環境で SSL を使用しないでください。ただし、プロダクション環境では常に SSL を使用してください。

 


プライベート キー、デジタル証明書、信頼性のある認証局

サーバの ID は、プライベート キー、デジタル証明書、および信頼性のある認証局によって確立および検証されます。

SSL では、認証用に公開鍵暗号化技術を使用します。公開鍵暗号化では、サーバ用の公開鍵とプライベート キー (秘密鍵) が生成されます。これらのキーは関連付けられているので、公開鍵で暗号化されたデータは、対応するプライベート キーを使用することによってのみ復号化できます。プライベート キーは注意深く保護されているので、そのオーナーだけが公開鍵で暗号化されたメッセージを解読できます。

公開鍵は、デジタル証明書に組み込まれます。デジタル証明書には、公開鍵のオーナーに関する情報 (名前、番地、電子メール アドレスなど) も組み込まれます。プライベート キーとデジタル証明書によって、サーバの ID が提供されます。

デジタル証明書に組み込まれたデータは認証局によって検証され、その認証局のデジタル証明書でデジタル署名されます。信頼できる認証局には、Verisign や Entrust.net などがあります。信頼性のある認証局 (CA) 証明書によって、証明書の「信頼」が確立されます。

SSL 接続に参加するアプリケーションは、そのアプリケーションのデジタル署名を評価および承認するときに認証を受けます。Web ブラウザ、サーバ、およびその他の SSL 対応アプリケーションは、信頼性のある認証局によって署名され、他の点でも有効なデジタル証明書を真正として承認します。たとえば、デジタル証明書が期限切れの場合や、署名に使用された認証局のデジタル証明書が期限切れの場合、デジタル証明書は無効になります。サーバの証明書は、サーバのデジタル証明書内のホスト名がクライアントによって指定された URL と一致しない場合は無効になります。

 


一方向および双方向 SSL

SSL は、一方向または双方向としてコンフィグレーションできます。

 


SSL の設定 : 主な手順

SSL を設定するには、次の手順に従います。

  1. WebLogic Server の ID (プライベート キーとデジタル証明書) および信頼 (信頼性のある認証局の証明書) を取得します。この手順を行うには、WebLogic Server キットに付属しているデジタル証明書、プライベート キー、および信頼性のある CA 証明書を使用するか、Cert Gen ユーティリティ、Sun Microsystems の keytool ユーティリティ、または Verisign や Entrust などの信頼できるベンダを使用します。
  2. プライベート キー、デジタル証明書、および信頼性のある CA 証明書を格納します。プライベート キーと信頼性のある CA 証明書は、キーストアに格納します。
  3. 注意 :このリリースの WebLogic Server では、下位互換性を保持するためだけに、ファイルまたは WebLogic キーストア プロバイダに格納されたプライベート キーと信頼性のある CA 証明書がサポートされています。

  4. WebLogic Server Administration Console で、WebLogic Server の ID キーストアと信頼キーストアをコンフィグレーションします。
  5. WebLogic Server Administration Console で、プライベート キーのエリアスとパスワードに関する SSL 属性を設定します。また、必要な場合、クライアント証明書の提示を必須とする属性を設定します (双方向 SSL の場合)。

詳細については、以下を参照してください。

 


プライベート キー、デジタル証明書、信頼性のある認証局の取得

SSL を使用するために、サーバではプライベート キー、それに一致する公開鍵の含まれているデジタル証明書、および少なくとも 1 つの信頼性のある認証局の証明書が必要です。WebLogic Server は、以下のソースからのプライベート キー、デジタル証明書、信頼性のある CA 証明書をサポートしています。

注意 :Certificate Request Generator サーブレットは、このリリースの WebLogic Server で非推奨になりました。Certificate Request Generator サーブレットの代わりに、Sun Microsystems の keytool ユーティリティを使用してください。詳細については、「一般的な Keytool コマンド」を参照してください。

非推奨のファイルベースのプライベート キー、デジタル証明書、および信頼性のある CA を使用する場合、WebLogic Server では PEM (privacy-enhanced mail) または DER (distinguished encoding rules) フォーマットのデジタル証明書を使用できます。

.pem フォーマットのファイルは次の行で始まり、

----BEGIN CERTIFICATE----

また、次の行で終わります。

----END CERTIFICATE----

.pem フォーマット ファイルでは、複数のデジタル証明書がサポートされています。たとえば、証明書チェーンを含むことができます。順序は重要です (信頼順にファイルが含まれます)。サーバのデジタル証明書が、ファイル内の最初のデジタル証明書になる必要があります。そのデジタル証明書の発行元が次のファイルとなり、自己署名のルート認証局証明書にたどり着くまで続くようにします。

.der フォーマットのファイルにはバイナリ データが含まれます。.pem ファイルは複数の証明書に対して使用できますが、.der ファイルは単一の証明書に対してのみ使用できます。

Microsoft は認証局としてよく利用されます。Microsoft は p7b フォーマットで信頼性のある CA 証明書を発行します。この信頼性のある CA 証明書は、PEM に変換してからでないと WebLogic Server で使用できません。詳細については、「Microsoft p7b フォーマットから PEM フォーマットへの変換」を参照してください。

プライベート キー ファイル (キーストアに格納されていないプライベート キー) は、PKCS#5/PKCS#8 PEM フォーマットでなければなりません。

WebLogic Server の他のバージョンで使用していたプライベート キーおよびデジタル証明書は、WebLogic Server のこのバージョンでも使用できます。プライベート キーおよびデジタル証明書を DER (distinguished encoding rules) 形式および PEM (privacy-enhanced mail) 形式の間で変換します。詳細については、「WebLogic Server Java ユーティリティの使い方」の「der2pem」の説明を参照してください。

ファイルの変換後、デジタル証明書ファイルに
-----BEGIN CERTIFICATE----- ヘッダと -----END CERTIFICATE----- フッタがあることを確認してください。これらがない場合、デジタル証明書は機能しません。

Cert Gen ユーティリティの使い方

注意 :Cert Gen ユーティリティは、プロダクション環境用ではなくデモまたはテスト目的専用のデジタル証明書とプライベート キーを生成します。

CertGen ユーティリティでは、CA 証明書と、生成された証明書を発行するためのキーを指定するコマンドライン オプションを使用できます。このユーティリティでは、デフォルトによって、デジタル証明書とデモ用の CA 証明書用のプライベート キーが格納された CertGenCA.der ファイルおよび CertGenCAKey.der ファイルが使用されます。CertGen ユーティリティによって生成されたデジタル証明書は、デフォルトではそれらが生成されたマシンのホスト名を共通名フィールド (cn) の値として持ちます。コマンドライン オプションを使用すると、cn の値と他のサブジェクト ドメイン名 (DN) フィールド (orgunitorganizationlocalitystatecountrycode など) の値を指定できます。

CertGen ユーティリティでは、公開証明書とプライベート キー ファイルが PEM および DER 形式で生成されます。Windows では、.der ファイルをダブルクリックし、生成されたデジタル証明書の詳細を確認します。.pem ファイルは、WebLogic Server を起動するときか、またはクライアントでデジタル証明書を使用するときに使用します。

注意 :デフォルトでは、CertGen ユーティリティは現在のディレクトリまたは WL_HOME/server/lib ディレクトリから CertGenCA.der ファイルおよび CertGenCAKey.der ファイルを検索します。これは、weblogic.home システム プロパティまたは CLASSPATH で指定します。

デフォルトの設定を使用する場合、コマンドラインで CA ファイルを指定する必要はありません。CA ファイルをコマンドラインで指定する場合は、次のコマンド構文を使用します。

  1. 証明書を生成するには、コマンド プロンプトに対して次のコマンドを入力します。
$ java utils.CertGen
[-cacert <ca_cert_file-name>] [-cakey <ca_key_filename>]
[-cakeypass <ca_key_password>] [-selfsigned]
[-certfile <certfile>] [-keyfile <privatekeyfile>]
[-keyfilepass <keyfilepassword>] [-strength <keystrength>]
[-cn <commonname>] [-ou <orgunit>] [-o <organization>]
[-l <locality>] [-s <state>] [-c <countrycode>]
[-subjectkeyid <subjectkeyidentifier>]
[-subjectkeyidformat UTF-8|BASE64]

引数

定義

ca_cert_filename

発行者の CA 公開証明書のファイル名。

ca_key_filename

発行者の CA プライベート キーのファイル名。

ca_key_password

発行者の CA プライベート キーのパスワード。

selfsigned

信頼性のある CA 証明書として使用できる自己署名証明書を生成する。

この引数を指定する場合、ca_cert_filenameca_key_filename、および ca_key_password の各引数は指定しないようにします。

certfile

生成される証明書ファイルの名前。

privatekeyfile

生成されるプライベート キー ファイルの名前。

keyfilepassword

プライベート キーのパスワード。

keystrength

生成するキーの長さ (ビット単位)。キーが長くなるほど、暗号の解読が難しくなる。

commonname

生成される証明書に関連付ける名前。

orgunit

生成される証明書に関連付ける組織の部門名。

organization

生成される証明書に関連付ける組織名。

locality

市町村の名前。

state

組織が米国またはカナダにある場合は、その組織が活動している州の名前。この引数に、略称は使用しないようにする。

countrycode

ISO の 2 文字の国コード。米国の場合、このコードは US になる。

subjectkeyidentifier

コマンドラインで指定したサブジェクト キー識別子拡張と ID 値を持つ証明書を生成する。

UTF-8|BASE64

subjectkeyid 値のフォーマット。有効値は UTF-8 または BASE64。デフォルト値は UTF-8。


 
  1. ImportPrivateKey ユーティリティを使用して、デジタル証明書とプライベート キーをキーストアにロードします。『WebLogic Server コマンド リファレンス』の「ImportPrivateKey」を参照してください。
  2. デフォルトでは、Cert Gen ツールは国内向け強度の証明書を生成します。ツールで輸出向け強度の証明書を生成する場合は、[export] オプションを指定します。ホスト名を使用する国内向け強度のデジタル証明書を輸出する場合は、[domestic] を指定します。

Cert Gen ツールは、JDK バージョン 1.3 の InetAddress.getLocalHost().getHostname() メソッドを使用して、サブジェクト共通名に格納するホスト名を取得します。getHostName() メソッドの動作は、プラットフォームによって異なります。Solaris などのプラットフォームでは完全修飾ドメイン名 (FQDN) を返し、Windows NT などでは短いホスト名を返します。WebLogic Server がクライアントとして動作する場合 (およびデフォルトでホスト名検証が有効になっている場合)、URL に指定されるホスト名が証明書のサブジェクト共通名と一致する必要があります。一致しない場合、接続は失敗します。

Solaris では、コマンドラインで hostname と入力すると、サーバは /etc/hosts ファイルを検索して短いホスト名を取得します。java.net.InetAddress.getHostName() を呼び出すと、ホストは /etc/nsswitch.conf ファイルを検索し、そのホストのコンフィグレーションに応じて FQDN または短いホスト名を返します。

ホスト エントリが次のようにコンフィグレーションされているとします。

hosts: dns nis [NOTFOUND=return]

この場合、ホストはまずネーム サービス ルックアップを実行し、DNS を利用できなかった場合にのみ /etc/hosts ファイルを使用します。このケースでは、FQDN が返されます。

一方、ホスト エントリが次のようにコンフィグレーションされているとします。

hosts: files dns nis [NOTFOUND=return]

この場合、ホストはまず /etc/hosts ファイルを検索し、次に DNS を利用します。このケースでは、短いホスト名が返されます。

証明書チェーンの使い方 (非推奨)

注意 : ファイルベースの証明書チェーンの使用は、このリリースの WebLogic Server では非推奨になっています。証明書チェーン全体がキーストアにインポートされるようになりました。次の手順は、下位互換性のみを目的に説明しています。

WebLogic Server で証明書チェーンを使用するには、次の手順に従います。

  1. すべてのデジタル証明書が PEM フォーマットであることを確認します。DER フォーマットの場合は、utils.der2pem ユーティリティを使用して PEM フォーマットに変換できます。Microsoft によって発行されたデジタル証明書を使用する場合は、「Microsoft p7b フォーマットから PEM フォーマットへの変換」を参照してください。「Microsoft p7b フォーマットから PEM フォーマットへの変換」にある手順を使用して、その他のタイプのデジタル証明書を変換できます。デジタル証明書は Base 64 フォーマットで保存します。
  2. テキスト エディタを開き、すべてのデジタル証明書ファイルを 1 つのファイルに含めます。順序は重要です。サーバのデジタル証明書が、ファイル内の最初のデジタル証明書になる必要があります。そのデジタル証明書の発行元が次のファイルとなり、自己署名のルート認証局証明書にたどり着くまで続くようにします。このデジタル証明書を最後の証明書にする必要があります。
  3. デジタル証明書の間に空白行を入れないようにします。

  4. WebLogic Server Administration Console の [キーストア & SSL] タブにある [SSL コンフィグレーション] 領域の [サーバ証明書ファイル名] 属性で、このファイルを指定します。

コード リスト 8-1 は証明書チェーンのサンプルです。

コード リスト 8-1証明書チェーンを含むファイルのサンプル

-----BEGIN CERTIFICATE-----
MIICyzCCAjSgAwIBAgIBLDANBgkqhkiG9w0BAQQFADCBtjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xFTATBgNVBAoTDEJFQSBXZWJMb2dpYzERMA8GA1UECxMIU2VjdXJpdHkxLzAtBgNVBAMTJkRlbW8gQ2VydGlmaWNhdGUgQXV0aG9yaXR5IENvbnN0cmFpbnRzMR8wHQYJKoZIhvcNAQkBFhBzZWN1cml0eUBiZWEuY29tMB4XDTAyMTEwMTIwMDIxMloXDTA2MTAxNTIwMDIxMlowgZ8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRUwEwYDVQQKEwxCRUEgV2ViTG9naWMxETAPBgNVBAsTCFNlY3VyaXR5MRkwFwYDVQQDExB3ZWJsb2dpYy5iZWEuY29tMR4wHAYJKoZIhvcNAQkBFg9zdXBwb3J0QGJlYS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMJX8nKUgsFej8pEu/1IVcHUkwY0c2JbBzOryu3sce4QjX+rGxiCjoPm2MY=yts2BvonuJ6CztdZf8B/LBEWCz+qRrtdFn9mKSZWGvrAkmMPz2RhXEOThpoRo5kZz2FQ9XF/PxIJXTYCM7yooRBwXoKYjquRwiZNtUiU9kYi6Z3prAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAh2eqQGxEMUnNTwEUD
0tBq+7YuAkjecEocGXvi2G4YSoWVLgnVzJoJuds3c35KE6sxBe1luJQuQkE9SzALG/6lDIJ5ctPsHFmZzZxY7scLl6hWj5ON8oN2YTh5Jo/ryqjvnZvqiNIWe/gqr2GLIkajC0mz4un1LiYORPig3fBMH0=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIC+jCCAmOgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBtjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xFTATBgNVBAoTDEJFQSBXZWJMb2dpYzERMA8GA1UECxMIU2VjdXJpdHkxLzAtBgNVBAMTJkRlbW8gQ2VydGlmaWNhdGUgQXV0aG9yaXR5IENvbnN0cmFpbnRzMR8wHQYJKoZIhvcNAQkBFhBzZWN1cml0eUBiZWEuY29tMB4XDTAyMTEwMTIwMDIxMVoXDTA2MTAxNjIwMDIxMVowgbYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRUwEwYDVQQKEwxCRUEgV2ViTG9naWMxETAPBgNVBAsTCFNlY3VyaXR5MS8wLQYDVQQDEyZEZW1vIENlcnRpZmljYXRlIEF1dGhvcml0eSBDb25zdHJhaW50czEfMB0GCSqGSIb3DQEJARYQc2VjdXJpdHlAYmVhLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3ynD8l5JfLob4g6d94dNtI0Eep6QNl9bblmswnrjIYz1BVjjRjNVal9fRs+8jvm85kIWlerKzIMJgiNsj50WlXzNX6orszggSsW15pqV0aYE9Re9K
CNNnORlsLjmRhuVxg9rJFEtjHMjrSYr2IDFhcdwPgIt0meWEVnKNObSFYcCAwEAAaMWMBQwEgYDVR0TAQH/BAgwBgEB/wIBATANBgkqhkiG9w0BAQQFAAOBgQBS+0oqWxGyqbZO028zf9tQT2RKojfuwywrDoGW96Un5IqpFnBHIu5atliJo3OUpiH18KkwLN8DVP/3t3K3O3kXdIuLbqAL0i5xyBlAhr7gE5eVhIyeMg7ETBPLyGO2BF13Y24LlsO+MX9jW7fxMraPN608QeJXkZw0E0cGwrw2AQ==
-----END CERTIFICATE-----

Microsoft p7b フォーマットから PEM フォーマットへの変換

Microsoft は認証局としてよく利用されます。Microsoft から発行されるデジタル証明書のフォーマット (p7b) は、WebLogic Server では使用できません。p7b フォーマットのデジタル証明書を PEM フォーマットに変換するには、次の手順に従います。

  1. Windows 2000 の Windows エクスプローラで、変換するファイル (filename.p7b) を選択します。
  2. 証明書ウィンドウが表示されます。

  3. 証明書ウィンドウの左ペインで、変換するファイルを展開します。
  4. 証明書オプションを選択します。
  5. p7b ファイル内の証明書のリストが表示されます。

  6. 目的の証明書を選択して PEM フォーマットに変換します。
  7. [証明書のエクスポート] ウィザードが表示されます。

  8. [次へ] をクリックします。
  9. Base64 Encoded Cert オプションを選択します (PEM フォーマットをエクスポートします)。
  10. [次へ] をクリックします。
  11. 変換したデジタル証明書の名前を入力します。
  12. [完了] をクリックします。

注意 :証明書チェーンが含まれている p7b 証明書ファイルの場合、発行元の PEM デジタル証明書と証明書ファイルを連結する必要があります。連結されたデジタル証明書は、WebLogic Server で使用できます。

独自の認証局の使い方

多くの企業が独自の認証局として機能しています。それらの信頼性のある CA 証明書を WebLogic Server で使用するには、次の手順に従います。

  1. 信頼性のある CA 証明書が PEM フォーマットであることを確認します。
  2. 信頼キーストアを作成します。詳細については、「一般的な Keytool コマンド」を参照してください。
  3. 信頼性のある CA 証明書を信頼キーストアに格納します。詳細については、「一般的な Keytool コマンド」を参照してください。
  4. その信頼キーストアを使用するように WebLogic Server をコンフィグレーションします。詳細については、「キーストアのコンフィグレーション」を参照してください。

Web ブラウザのデジタル証明書の取得

セキュリティ レベルの低いブラウザの証明書は取得が簡単であり、通常は Web ブラウザ内から [オプション] や [プリファレンス] の [セキュリティ] メニュー項目を選択することで取得できます。[Personal Certificate] ページに移動して、新しいデジタル証明書を申し込みます。自分自身に関する情報を入力します。

受け取るデジタル証明書には、名前や公開鍵などの公開される情報と、電子メール アドレスなど、第三者によって認証された追加情報が含まれます。その後、認証が要求された場合にこのデジタル証明書を提示します。

デジタル証明書の取得プロセスの一部として、Web ブラウザは公開鍵/プライベート キーの組み合わせを生成します。プライベート キーは非公開のまま保管する必要があります。デジタル証明書の取得プロセス自体をセキュアなものにするため、プライベート キーはローカル ファイル システムに保管され、Web ブラウザのマシンに残ります。一部のブラウザでは、パスワードを使用してプライベート キーを暗号化できます。パスワードは格納されません。プライベート キーを暗号化すると、セッションごとに少なくとも 1 回は Web ブラウザでパスワードが要求されます。

注意 :Web ブラウザから取得したデジタル証明書は、他のタイプの Web ブラウザや、同じ Web ブラウザの異なるバージョンでは機能しません。

 


プライベート キー、デジタル証明書、信頼性のある認証局の格納

プライベート キー、デジタル証明書、信頼性のある CA 証明書を取得したら、WebLogic Server が ID の検索と検証にそれらを使用できるよう、それらを格納する必要があります。プライベート キー、関連付けられたデジタル証明書、および信頼性のある CA 証明書は、キーストアに格納します。キーストアは、WebLogic Server Administration Console を使用してコンフィグレーションすることも、コマンドラインで指定することもできます。WebLogic Server Administration Console の [キーストア & SSL] タブにある [キーストア コンフィグレーション] 領域で、WebLogic Server の ID キーストアと信頼キーストアをコンフィグレーションします。

下位互換性を保持するために、プライベート キーと信頼性のある CA 証明書をファイルまたは WebLogic キーストア プロバイダを介してアクセスされる JKS キーストアに格納できます。さらに、信頼性のある CA 証明書は JKS キーストアにも格納できます。WebLogic Server Administration Console の [キーストア & SSL] タブにある [SSL コンフィグレーション] 領域を使用すると、ファイルまたは WebLogic キーストア プロバイダを介してアクセスされる JKS キーストアを使用する場合に ID と信頼の属性を指定できます。

詳細については、以下を参照してください。

キーストアの作成およびプライベート キーと信頼性のある認証局のキーストアへのロード

キーストアは、プライベート キーとデジタル証明書の組み合わせおよび信頼性のある CA 証明書を作成し、管理するためのメカニズムです。以下のメカニズムを使用して、キーストアを作成し、プライベート キーと信頼性のある CA 証明書をそのキーストアにロードします。

SSL をコンフィグレーションするときに、ID と信頼の格納方法を決定する必要があります。ID と信頼の両方で 1 つのキーストアを使用することはできますが、以下のような理由から、ID と信頼のそれぞれに個別のキーストアを使用することをお勧めします。

ID キーストア (プライベート キーとデジタル証明書のペア) と信頼キーストア (信頼性のある CA 証明書) ではセキュリティ要件が異なる場合があります。次に例を示します。

信頼の場合は、キーストアに証明書 (非機密データ) を格納するだけですが、ID の場合は、キーストアに証明書とプライベート キー (機密データ) を格納する必要があります。

マシンは、それぞれのサーバ ID を持つ一方で、ドメイン全体にわたって同じ信頼ルールを備える (つまり、信頼性のある CA の同じセットを使用する) 傾向にあります。ID にはプライベート キーが必要であり、プライベート キーはあるサーバから別のサーバへコピーできません。そのため、マシンごとに別々のキーストアが作成されます。各キーストアにはそのマシンに必要なサーバ ID のみが含まれています。一方、信頼キーストアはマシンからマシンにコピーできるため、信頼ルールの標準化は簡単に行われます。

ID は nCipher などのハードウェア キーストアに格納する場合もあります。信頼にはプライベート キーではなく証明書のみが含まれるため、ファイルベースの JDK キーストアに格納してもセキュリティの問題はありません。

デフォルトでは、WebLogic Server は DemoIdentity.jks という ID キーストアを WL_HOME\server\lib ディレクトリで検索し、DemoTrust.jks という信頼キーストアを WL_HOME\server\lib ディレクトリで検索し、cacertsJAVA_HOME\jre\lib\security ディレクトリで検索します。

キーストアのすべてのプライベート キー エントリには、固有のエリアスを介して WebLogic Server からアクセスできます。エリアスは、プライベート キーをキーストアにロードするときに指定します。エリアスの大文字/小文字は区別されません。このため、Hugo hugo は同じキーストア エントリを指します。プライベート キーのエリアスは、SSL をコンフィグレーションするときに [プライベート キーのエイリアス] 属性で指定します。

WebLogic Server によって信頼されているものとして示される、キーストア内の認証局はすべて信頼されます。WebLogic Server では信頼性のある CA 証明書へのアクセスにエリアスは使用されませんが、キーストアでは信頼性のある CA 証明書をキーストアにロードするときにエリアスが要求されます。

一般的な Keytool コマンド

表 8-1 に、WebLogic Server で JKS キーストアを作成および使用する場合の keytool コマンドを示します。

注意 :keytool ユーティリティは Sun Microsytems の製品です。そのため BEA からは、このユーティリティに関する詳細なドキュメントは提供していません。詳細については、『keytool-Key and Certificate Management Tool』を参照してください。

表 8-1 一般的に使用される keytool コマンド

コマンド

説明

keytool -genkey -keystore keystorename -storepass keystorepassword

新しいプライベート キー エントリと自己署名デジタル証明書をキーストアで生成する。キーストアが存在しない場合は作成される。

keytool -import -alias aliasforprivatekey
-file
privatekeyfilename.pem
-keypass privatekeypassword
-keystore keystorename -storepass keystorepassword

自己署名デジタル証明書を信頼性のある CA によって署名された証明書で更新する。

keytool -import -alias aliasfortrustedca -trustcacerts -file trustedcafilename.pem -keystore keystorename -storepass keystorepassword

信頼性のある CA 証明書をキーストアにロードする。キーストアが存在しない場合は作成される。

-certreq -alias alias
-sigalg sigalg
-file certreq_file
-keypass privatekeypassword
-storetype keystoretype
-keystore keystorename
-storepass keystorepassword

PKCS#10 フォーマットを使用して CSR を生成する。

その CSR は信頼性のある CA に送信する。信頼性のある CA は証明書の要求側を認証し、キーストアの既存の自己署名デジタル証明書に代わるデジタル証明書を返す。

keytool -list -keystore keystorename

キーストアの内容を表示する。

keytool -delete -keystore keystorename -storepass keystorepassword -alias privatekeyalias

指定したエリアスのプライベート キーとデジタル証明書の組をキーストアから削除する。

keytool -help

keytool のオンライン ヘルプを表示する。


 

 


WebLogic Server が信頼を検索する方法

WebLogic Server では、信頼性のある CA 証明書をロードするときに次のアルゴリズムを使用します。

  1. キーストアが -Dweblogic.security.SSL.trustedCAKeyStore コマンドライン引数で指定されている場合は、そのキーストアから信頼性のある CA 証明書をロードします。
  2. キーストアがコンフィグレーション ファイル (config.xml) で指定されている場合は、その指定されたキーストアから信頼性のある CA 証明書をロードします。サーバで DemoTrust がコンフィグレーションされている場合、信頼性のある CA 証明書は WL_HOME\server\lib\DemoTrust.jks キーストアおよび JDK cacerts キーストアからロードされます。
  3. 信頼性のある CA ファイルがコンフィグレーション ファイル (config.xml) で指定されている場合は、そのファイルから信頼性のある CA 証明書をロードします (6.x SSL コンフィグレーションとの互換性のみを目的としている)。
  4. 上記の場合以外は、信頼性のある CA 証明書は WL_HOME\server\lib\cacerts キーストアからロードします。

 


キーストアのコンフィグレーション

デフォルトでは、WebLogic Server には、以下の 2 つのキーストアがコンフィグレーションされています。

これらのキーストアは、WL_HOME\server\lib ディレクトリにあります。開発およびテスト目的の場合は、このキーストア コンフィグレーションで十分です。ただし、デモ用キーストアはプロダクション環境では使用しないでください。キーストア内のすべてのデジタル証明書および信頼性のある CA 証明書は、WebLogic Server のデモ用認証局によって署名されます。そのため、すべての WebLogic Server のインストールは相互に信頼します。これにより、SSL 接続は攻撃に対して開放された状態になります。

以下の手順は、プロダクション環境用に ID キーストアと信頼キーストアをコンフィグレーションするための手順です。

この節の手順を実行する前に、以下のことを行う必要があります。

  1. プライベート キーとデジタル証明書を Verisign, Inc. や Entrust.net などの信頼できる認証局から取得します。詳細については、「プライベート キー、デジタル証明書、信頼性のある認証局の取得」を参照してください。
  2. ID キーストアと信頼キーストアを作成します。詳細については、「プライベート キー、デジタル証明書、信頼性のある認証局の格納」を参照してください。
  3. プライベート キーと信頼性のある CA を ID キーストアと信頼キーストアにロードします。詳細については、「プライベート キー、デジタル証明書、信頼性のある認証局の格納」を参照してください。

WebLogic Server の ID キーストアと信頼キーストアをコンフィグレーションするには、次の手順に従います。

  1. [サーバ] ノードを展開します。
  2. キーストアのコンフィグレーションを行うサーバの名前を選択します (exampleserver など)。
  3. [コンフィグレーション|キーストア & SSL] タブを選択します。
  4. [キーストア コンフィグレーション] にデモ用キーストアに関する情報が表示されます。

  5. [キーストア コンフィグレーション] の [変更...] リンクをクリックして、新しいキーストアをコンフィグレーションします。
  6. 使用するキーストア コンフィグレーションのタイプを選択します。以下のオプションがあります。
    • [Demo Identity and Demo Trust] - WL_HOME\server\lib ディレクトリに配置され、デフォルトでコンフィグレーションされているデモ用 ID キーストアと信頼キーストア、および JAVA_HOME\jre\lib\security ディレクトリの cacerts ファイルを使用する。
    • [Custom Identity and Java Standard Trust] - ユーザが作成する ID キーストアと、JAVA_HOME\jre\lib\security ディレクトリの cacerts ファイルで定義されている信頼された CA を使用する。
    • [Custom Identity and Custom Trust] - ユーザが作成する ID キーストアと信頼キーストアを使用する。
    • [Custom Identity and Command Line Trust] - ユーザが作成する ID キーストアと、信頼キーストアの場所を指定するコマンドライン引数を使用する。このオプションは、プロダクション環境で、管理ポートが有効であり、管理対象サーバがノード マネージャではなくコマンドラインで起動されている場合に使用します。
  7. [続行] をクリックします。
  8. ID キーストアの属性を定義します。
    • [Custom Identity Keystore File Name] - ID キーストアの絶対パス。
    • [Custom Identity Keystore Type] - キーストアのタイプ。通常、この属性は jks です。この属性が指定されていない場合は、JDK のセキュリティ ポリシー ファイルで定義されているデフォルト キーストア タイプが使用されます。
    • [Custom Identity Keystore Pass Phrase] - キーストアの作成時に定義したパスワード。この属性が必須か省略可能かは、キーストアのタイプによって異なります。すべてのキーストアで、キーストアに書き込むためにはパス フレーズが必須です。一部のキーストアでは読み込みにパス フレーズを必要としません。このプロパティを定義するかどうかは、キーストアの要件次第です。たとえば、WebLogic Server はキーストアから読み込むだけなのでパス フレーズは必要ありませんが、WebLogic Integration はキーストアに書き込むのでパス フレーズが必要です。[Pass Phrase の確認] フィールドにパスワードをもう一度入力します。
    • 注意 :デモ用 ID キーストアのパス フレーズは DemoIdentityKeyStorePassPhrase です。

  9. 信頼キーストアの属性を定義します。
  10. [Java 標準信頼] を選択した場合は、キーストアの作成時に定義したパスワードを指定します。パスワードを確認します。

    [カスタム信頼] を選択した場合は、次の属性を定義します。

    • [Custom Trust Key store File Name] - 信頼キーストアの絶対パス。
    • [Custom Trust Key store Type] - キーストアのタイプ。通常、この属性は jks です。この属性が指定されていない場合は、JDK のセキュリティ ポリシー ファイルで定義されているデフォルト キーストア タイプが使用されます。
    • [Custom Trust Key store Pass phrase] - キーストアの作成時に定義したパスワード。この属性が必須か省略可能かは、キーストアのタイプによって異なります。すべてのキーストアで、キーストアに書き込むためにはパス フレーズが必須です。一部のキーストアでは読み込みにパス フレーズを必要としません。このプロパティを定義するかどうかは、キーストアの要件次第です。たとえば、WebLogic Server はキーストアから読み込むだけなのでパス フレーズは必要ありませんが、WebLogic Integration はキーストアに書き込むのでパス フレーズが必要です。パスワードを確認します。
  11. [続行] をクリックします。
  12. [完了] をクリックします。
  13. 必要に応じて、WebLogic Server の SSL 属性をコンフィグレーションします。デジタル署名用にキーストアを使用する場合は、この手順を実行する必要はありません。
  14. WebLogic Server を再起動します。

 


SSL のコンフィグレーション

デフォルトでは、SSL は有効であり、デモ用の ID キーストアおよび信頼キーストアを使用するようにコンフィグレーションされています。開発およびテスト目的の場合は、この SSL コンフィグレーションで十分です。以下の手順は、プロダクション環境用に SSL をコンフィグレーションするための手順です。

SSL をコンフィグレーションするには、次の手順に従います。

  1. [サーバ] ノードを展開します。
  2. キーストアのコンフィグレーションを行うサーバの名前を選択します (exampleserver など)。
  3. [コンフィグレーション|キーストア & SSL] タブを選択します。
  4. [キーストア コンフィグレーション] にデモ用の ID キーストアおよび信頼キーストアに関する情報が表示されます。

  5. WebLogic Server の新しい ID キーストアと信頼キーストアをコンフィグレーションします。詳細については、「キーストアのコンフィグレーション」を参照してください。

注意 :下位互換性を保持するために、プライベート キーと信頼性のある CA 証明書をファイルまたは WebLogic キーストア プロバイダを介してアクセスされる JKS キーストアに格納できます。前バージョンの WebLogic Server から移行した場合、WebLogic Server では既存のセキュリティ コンフィグレーションを使用し、[Files or Key Store Providers] オプションを設定します。この場合は、手順 4 はスキップできます。

  1. [SSL コンフィグレーション] の [変更...] リンクをクリックして、SSL の属性をコンフィグレーションします。
  2. [SSL コンフィグレーション] ページが表示されます。

  3. WebLogic Server の ID と信頼の格納方法を指定します。以下のオプションがあります。
    • [Key Stores] - WebLogic Server に対して ID キーストアおよび信頼キーストアを作成した場合に、このオプションを使用します。このオプションを選択した場合は、手順 8 に進みます。
    • [Files or Key Store Providers] - プライベート キーおよび信頼性のある CA 証明書をファイルまたは WebLogic キーストア プロバイダを介してアクセスされる JKS キーストアに格納した場合は、このオプションを使用します (以前のリリース WebLogic Server でサポート)。このオプションを選択した場合は、手順 9 に進みます。このオプションは下位互換性のみを目的に用意されており、自動的に、以前のリリースの WebLogic Server からのセキュリティ情報で設定されます。
  4. [続行] をクリックします。
  5. [プライベート キーのエイリアス] にプライベート キーのキーストアへのロードに使用するエリアスを指定し、[Pass Phrase] にプライベート キーのキーストアからの取得に使用するパスワードを指定します。この情報は ID キーストアの作成時に指定されている可能性がありますが、SSL コンフィグレーション用にもう一度指定します。手順 10 に進みます。

注意 :信頼キーストアに対してはこの情報を指定する必要はありません。信頼される CA 証明書は WebLogic Server ではエリアスで個別に識別できないからです。WebLogic Server によって信頼されているものとして示される、キーストア内の信頼性のある CA 証明書はすべて信頼されます。そのため、キーストアから信頼性のある CA 証明書を取得する場合には WebLogic Server ではエリアスは不要です。

  1. WebLogic Server の ID と信頼の場所に関する情報を指定します。
  2. 注意 :この手順は、[Files or Key Store Providers] オプションが指定されている場合のみ行います。

    • [プライベート キーのファイル名] - WebLogic Server のプライベート キーのディレクトリの場所。この属性の値は、WebLogic Server のプライベート キーを (WebLogic キーストア プロバイダではなく) ファイルに格納した場合にのみ指定します。
    • [プライベート キーのエイリアス] - WebLogic Server のプライベート キーをキーストアからロードするときに指定されるエリアス。この属性の値は、WebLogic Server のプライベート キーを WebLogic キーストア プロバイダからアクセスされるキーストアに格納した場合にのみ指定します。
    • [Pass Phrase] - WebLogic Server のプライベート キーをキーストアにロードするときに指定されるパスワード。この属性の値は、WebLogic Server のプライベート キーを WebLogic キーストア プロバイダからアクセスされるキーストアに格納した場合にのみ指定します。[Pass Phrase の確認] フィールドにパスワードをもう一度入力します。プライベート キー ファイルをパスワードで保護した場合は、サーバを起動するときに weblogic.management.pkpassword コマンドライン引数を指定します。
    • [サーバ証明書ファイル名] - WebLogic Server のデジタル証明書のディレクトリの場所。3 つ以上の証明書からなる証明書チェーンを使用する場合は、PEM フォーマットの証明書ファイルにチェーン全体を含める必要があります。
    • [信頼性のある CA ファイル名] - PEM エンコードされた信頼性のある認証局証明書を格納したファイルの名前。
  3. [続行] をクリックします。
  4. [完了] をクリックします。
  5. WebLogic Server を再起動します。

 


双方向 SSL のコンフィグレーション

デフォルトでは、一方向 SSL (サーバが ID をクライアントに渡す) を使用するようにコンフィグレーションされています。よりセキュアな SSL 接続のためには、双方向 SSL を使用してください。双方向 SSL 接続では、クライアントがサーバの ID および信頼を確認した後、クライアントの ID をサーバに渡します。サーバは、クライアントの ID および信頼を確認してから SSL 接続を確立します。サーバが双方向 SSL を使用するかどうかを決定します。

双方向 SSL をコンフィグレーションする前に、サーバの信頼キーストアに、クライアントの証明書に署名した信頼性のある認証局の証明書が含まれているようにしてください。

双方向 SSL を有効にするには、次の手順に従います。

  1. SSL のコンフィグレーション」の説明に従って、一方向 SSL をコンフィグレーションします。
  2. [サーバ] ノードを展開します。
  3. 双方向 SSL のコンフィグレーションを行うサーバの名前を選択します (exampleserver など)。
  4. [コンフィグレーション|キーストア & SSL] タブを選択します。
  5. [詳細設定] オプションの下の [表示] リンクをクリックします。
  6. ウィンドウの [サーバ] 属性の領域に進みます。
  7. [相互クライアント認証の動作] 属性を設定します。以下のオプションがあります。
    • [クライアント証明書を要求しない] - デフォルト (一方向 SSL)。
    • [クライアント証明書を要求 (強制しない)] - クライアントに証明書を提示するように求めます。証明書が提示されない場合でも、SSL 接続は継続します。
    • [クライアント証明書を要求 (強制する)] - クライアントに証明書の提示を強制します。証明書が提示されない場合、または証明書が信頼できない場合、SSL 接続は終了します。
  8. [適用] をクリックします。
  9. WebLogic Server を再起動します。

 


SSL ポートの無効化

SSL ポートを無効にしなければならない環境もあります。たとえば管理ポートは、管理サーバ、管理対象サーバ、およびノード マネージャの間の通信を保護するために SSL を内部的に使用します。管理ポートを使用する場合は、SSL ポートを無効にすることができます。

SSL ポートを無効にするには、次の手順に従います。

  1. [サーバ] ノードを展開します。
  2. [全般] タブを選択します。
  3. [SSL リスン ポートを有効化] オプションのチェックをはずします。
  4. [適用] をクリックして変更を保存します。
  5. WebLogic Server を再起動します。

 


ホスト名検証の使い方

ホスト名検証では、クライアントの接続先の URL のホスト名と、SSL 接続の一部としてサーバが送り返すデジタル証明書のホスト名が一致していることが確認されます。ホスト名検証は、SSL クライアントまたはクライアントとして機能している SSL サーバがリモート ホスト上のアプリケーション サーバに接続する場合に役立ちます。介在者の攻撃を防ぐのに役立ちます。

WebLogic Server ではデフォルトでホスト名検証が有効になっています。WebLogic Server の SSL ハンドシェーク機能としての動作は、SSL サーバのデジタル証明書の SubjectDN にある共通名と、SSL 接続の開始に使用する SSL サーバのホスト名を比較することです。これらの名前が一致しない場合は SSL 接続が中断されます。名前が一致しない場合は SSL クライアントが実際に SSL 接続を中断します。

このリリースの WebLogic Server ではホスト名検証機能が更新されており、証明書のホスト名がローカル マシンのホスト名と一致する場合、ホスト名検証は URL で localhost127.0.01、またはローカル マシンのデフォルト IP アドレスが指定されている場合にパスします。

WebLogic Server デプロイメントでホスト名検証が有効になっていることを確認するには、ドメイン内のサーバごとに次の手順を行います。

注意 :次の手順は、WebLogic Server インスタンスが SSL クライアントとして機能している場合にのみ行います。SSL クライアントとして機能している Java クライアントは、コマンドライン引数を通じてホスト名検証の使用を指定します。

  1. [サーバ] ノードを展開します。
  2. サーバの名前 (exampleserver など) を選択します。
  3. [コンフィグレーション|キーストア & SSL] タブを選択します。
  4. [詳細設定] オプションの下の [表示] リンクをクリックします。
  5. ウィンドウの [クライアント] 属性の領域に進みます。
  6. [ホスト名の検証] フィールドが [BEA ホスト名検証] に設定されていることを確認します。

デフォルト以外の動作が必要な場合は、ホスト名検証を無効にするか、カスタム ホスト名検証をコンフィグレーションします。ホスト名検証を無効にすると、WebLogic Server は介在者の攻撃に対して無防備な状態になります。プロダクション環境ではホスト名検証を有効なままにしておくことをお勧めします。

ホスト名検証は、以下のいずれかの方法で無効にできます。

  1. [サーバ] ノードを展開します。
  2. サーバの名前 (exampleserver など) を選択します。
  3. [コンフィグレーション|キーストア & SSL] タブを選択します。
  4. [詳細設定] オプションの下の [表示] リンクをクリックします。
  5. ウィンドウの [クライアント] 属性の領域に進みます。
  6. [ホスト名の検証] フィールドを [なし] に設定します。
  7. WebLogic Server を再起動します。

また、カスタム ホスト名検証を記述することもできます。詳細については、『WebLogic Security プログラマーズ ガイド』を参照してください。 カスタム ホスト名検証を記述する場合は、ホスト名検証を実装するクラスの名前を WebLogic Server (SSL クライアントとして機能している場合) の CLASSPATH または SSL クライアントとして機能している Java クライアントで指定する必要があります。

カスタム ホスト名検証をコンフィグレーションするには、次の手順に従います。

  1. [サーバ] ノードを展開します。
  2. サーバの名前 (exampleserver など) を選択します。
  3. [コンフィグレーション|キーストア & SSL] タブを選択します。
  4. [詳細設定] オプションの下の [表示] リンクをクリックします。
  5. ウィンドウの [クライアント] 属性の領域に進みます。
  6. [ホスト名の検証] フィールドを [カスタム ホスト名検証] に設定します。
  7. [カスタム ホスト名の検証] フィールドに weblogic.security.SSL.HostnameVerifier インタフェースの実装の名前を入力します。
  8. WebLogic Server を再起動します。

Java クライアントを使用している場合は、カスタム ホスト名検証を次の引数を使用してコマンドラインで指定する必要があります。

-Dweblogic.security.SSL.HostnameVerifier=classname

classnameweblogic.security.SSL.HostnameVerifier インタフェースの実装を指定します。

 


SSL デバッグの有効化

SSL デバッグは、SSL ハンドシェーク中に発生した SSL イベントに関する詳細な情報を提供します。SSL デバッグのトレースには、以下のものに関する情報が記載されます。

次のコマンドライン プロパティを使用して SSL デバッグを有効にします。

-Dssl.debug=true -Dweblogic.StdoutDebugEnabled=true

SSL デバッグ プロパティは、SSL サーバ、SSL クライアント、およびノード マネージャの起動スクリプトに含めることができます。ノード マネージャによって起動される管理対象サーバに対しては、管理対象サーバの [リモートスタート] タブでこのコマンドライン引数を指定します。

SSL デバッグは、SSL プロセスで ALERT が作成されるとスタック トレースをダンプします。ALERT のタイプと重大度は、TLS 仕様で定義されています。

スタック トレースは、情報を ALERT が発生した場所のログ ファイルにダンプします。そのため、SSL の問題を追跡する場合は、SSL 接続の両側 (SSL クライアントと SSL サーバの両方で) でデバッグを有効にしておく必要があります。ログ ファイルには、障害が発生した場所に関する詳細な情報が記録されます。ALERT が発生した場所を判別するには、ALERT の後にトレース メッセージがあるかどうかを確認します。トレース メッセージの後に受信された ALERT によって、そのピアで障害が発生したことがわかります。問題を判別するには、SSL 接続のそのピアで SSL デバッグを有効にしておく必要があります。

SSL の問題を追跡する場合は、ログ ファイルの情報を調べて以下のことを確認します。

注意 :Sev 1 type 0 は、正常なクローズ ALERT であり、問題ではありません。

 


SSL セッションの動作

WebLogic Server では、SSL セッションをキャッシュできます。これらのセッションは、サーバの稼働時間にわたって存続します。この動作はこのリリースの WebLogic Server で変更されました。weblogic.security.SSL.sessionCache.size コマンドライン引数は無視されます。

デフォルトでは、HTTPS URL を使用するクライアントは、URL ごとに新しい SSL セッションを取得します。これは、各 URL が異なる SSL コンテキストを使用するため、SSL セッションを共有または再利用できないからです。SSL セッションを取得するには、weblogic.net.http.HttpsClient クラスまたは weblogic.net.http.HttpsURLConnection クラスを使用します。クライアント間で SSL ソケット ファクトリを共有することにより、クライアントで URL を再開することもできます。

SSL ソケットを直接使用するクライアントは、SSL セッション キャッシュの動作を制御できます。SSL セッション キャッシュは、各 SSL コンテキストに固有のものです。特定の SSL コンテキストによって返された SSL ソケット ファクトリ インスタンスによって作成されたすべての SSL ソケットは、SSL セッションを共有します。

クライアントは、デフォルトによって同じ IP アドレスとポートでセッションを再開します。デフォルトでは、複数の SSL ソケットが同じホストとポートを使用して SSL セッションを共有し、SSL ソケットが共通の SSL コンテキストを使用していると見なします。

SSL セッションをまったく使用しないクライアントは、SSL の setEnableSessionCreation(false) を明示的に呼び出して、SSL セッションがキャッシュされないようにする必要があります。この設定は、SSL セッションがキャッシュに追加されるかどうかだけを制御するもので、SSL ソケットがキャッシュ済みの SSL セッションを検索することを停止するものではありません。たとえば、SSL ソケット 1 がセッションをキャッシュし、SSL ソケット 2 が setEnableSessionCreationfalse に設定した場合でも、SSL ソケット 1 の SSL セッションはキャッシュに存在するので、SSL ソケット 2 はそのセッションを再利用できます。

SSL セッションは SSL コンテキストの存続期間にわたって存在し、SSL ソケットの存続期間によって制御されません。このため、新しい SSL ソケットを作成し、同じホストとポートに接続した場合、その SSL ソケットがキャッシュ内に前の SSL セッションを持つ SSL コンテキストの SSL ソケット ファクトリを使用して作成される限り、前のセッションを再開できます。

WebLogic Server 6.x では、1 つの SSL セッションが実行スレッド内にキャッシュされます。このリリースの WebLogic Server では、セッション キャッシングはスレッドによって共有可能な SSL コンテキストによって維持されます。1 つのスレッドは 1 つの SSL セッションではなくセッション キャッシュ全体にアクセスできるので、複数の SSL セッションを 1 つ (または複数の) スレッドで使用および共有できます。

 


ノード マネージャに対する SSL のコンフィグレーション

ノード マネージャは、管理サーバおよび管理対象サーバとの通信の保護に双方向 SSL を使用します。SSL のコンフィグレーションには、ノード マネージャと、ノード マネージャが通信する管理サーバおよび管理対象サーバの各々の ID と信頼を取得してから、適切な ID と信頼を使って、ノード マネージャ、管理サーバ、および管理対象サーバをコンフィグレーションすることが含まれます。また、管理ポートの使用を考慮に入れる必要があります。以降の節では、ノード マネージャの SSL 要件について説明し、2 通りのシナリオを説明します。1 つは WebLogic Server に付属しているのデモ用の ID と信頼を使用するシナリオ、もう 1 つはプロダクション レベルの ID と信頼を使用するシナリオです。

管理サーバの SSL 要件

SSL を使用するには、管理サーバで以下のものが必要になります。

管理対象サーバの SSL 要件

SSL を使用するには、管理対象サーバで以下のものが必要になります。

管理ポートが有効化されている場合、管理対象サーバは管理サーバに接続して config.xml ファイルに定義されたとおりにコンフィグレーション情報をダウンロードする際に、SSL プロトコルを使用する必要があります。しかし config.xml ファイルには、管理対象サーバの SSL コンフィグレーションも含まれています。そのため管理対象サーバでは、config.xml ファイルに定義されているとおりに SSL コンフィグレーション情報を取得するために SSL プロトコルを使用する必要が生じます。このデットロックを解消するため、管理サーバに接続してコンフィグレーション情報をダウンロードするまで管理対象サーバではデフォルトでデモ用の信頼を使用するように設定されています。また、管理対象サーバでコマンドラインの切り替えを使用して、明示的に信頼を設定することもできます。この切り替えはプロダクション環境において使用してください。

ノード マネージャの SSL 要件

SSL を使用するには、ノード マネージャで以下のものが必要になります。

ホスト名検証の要件

WebLogic Server の以前のリリースでは、ホスト名検証を有効化する必要がありました。WebLogic Server の今回のリリースでは、ホスト名検証はデフォルトで有効化されています。ホスト名検証を使用して接続先のホストが予定していたホストであることを確認することをお勧めします。ホスト名検証の使用時にエラーを回避するために、以下のことを確認してください。

ID と信頼 : デモ用とプロダクション用

デフォルトでは、ノード マネージャ、管理サーバ、および管理対象サーバはデモ用の ID キーストア (DemoIdentity.jks)、デモ用の信頼キーストア (DemoTrust.jks)、および Java 標準信頼キーストア (JAVA_HOME\jre\lib\security\cacerts) を使用するようにコンフィグレーションされています。開発およびテスト目的の場合は、この ID および信頼キーストア コンフィグレーションで十分です。

ただし、デモ用キーストアはプロダクション環境では使用しないでください。キーストア内のすべてのデジタル証明書および信頼性のある CA 証明書は、WebLogic Server のデモ用認証局によって署名されます。そのため、すべての WebLogic Server のインストールは相互に信頼します。これにより、SSL 接続は攻撃に対して開放された状態になります。

キーストアはマシン単位でコンフィグレーションします。同じマシンで実行されている管理サーバ、管理対象サーバ、およびノード マネージャの ID キーストアと信頼キーストアは共有できます。

次の手順を実行すると、プロダクション環境の ID と信頼をコンフィグレーションできます。

  1. ノード マネージャ、管理サーバ、および管理対象サーバのプライベート キーとデジタル証明書を信頼できる認証局から取得します。詳細については、「プライベート キー、デジタル証明書、信頼性のある認証局の取得」を参照してください。
  2. ノード マネージャ、管理サーバ、および管理対象サーバの ID キーストアと信頼キーストアが存在することを確認します。以前のリリースの WebLogic Server では、JKS キーストアのみがサポートされていました。今回のリリースの WebLogic Server では、すべてのタイプのキーストアからプライベート キーおよび信頼性のある CA 証明書にアクセスできます。WebLogic Server Administration Console でキーストアをコンフィグレーションする場合は、必要に応じてタイプを指定します。
  3. プロダクション環境では、Java 標準信頼キーストア (JAVA_HOME\jre\lib\security\cacerts) を、ノード マネージャ、管理サーバ、または管理対象サーバの信頼キーストアとして使用することもできます。

  4. プライベート キーと証明書を ID キーストアにロードし、信頼性のある CA 証明書を信頼キーストアにロードします。
  5. WebLogic Server Administration Console で管理サーバおよび管理対象サーバのキーストアの場所とパスワードをコンフィグレーションします。
  6. nodemanager.properties ファイルを編集して、ノード マネージャのキーストアの場所とパスワードを指定します。

ノード マネージャの SSL のデモ用コンフィグレーション : 主な手順

WebLogic Server に付属しているデモ用の ID キーストアと信頼キーストアを使用してノード マネージャの SSL をコンフィグレーションする場合には、キーストア属性のデフォルト設定の検証と、管理サーバおよび管理対象サーバが異なるポートで SSL 接続をリスンしていることの確認が必要になります。

図 8-1 に、ノード マネージャの SSL のデモ用コンフィグレーションを示します。

図 8-1 ノード マネージャの SSL のデモ用コンフィグレーション


 

ノード マネージャの SSL のデモ用コンフィグレーション


 


 

注意 :次の手順では、ノード マネージャ、管理サーバ、および管理対象サーバが同じマシンで実行されていることを前提としています。

SSL およびデモ用の ID キーストアと信頼キーストアを使用するようにノード マネージャをコンフィグレーションするには、次の手順に従います。

  1. コンフィグレーション ウィザードを実行し、新しい WebLogic ドメインを作成します。
  2. 例 : 管理サーバとクラスタ化された管理対象サーバで構成されるドメインの作成」を参照してください。

  3. 管理サーバを起動します。管理ポートは有効にしないでください。
  4. [サーバ|キーストア & SSL] タブで、管理サーバの以下の ID キーストア属性の設定を確認します。
    • [デモ ID キーストア] - DemoIdentity.jks
    • [型] - JKS
    • Passphrase—DemoIdentityKeyStorePassPhrase
  5. [サーバ|キーストア & SSL] タブで、管理サーバの以下の信頼キーストア属性の設定を確認します。
    • [デモ信頼キーストア] - DemoTrust.jks
    • [型] - JKS
    • Passphrase—DemoTrustKeyStorePassPhrase
  6. [サーバ|キーストア & SSL] タブで、管理対象サーバの以下の ID キーストア属性の設定を確認します。
    • [デモ ID キーストア] - DemoIdentity.jks
    • [型] - JKS
    • Passphrase—DemoIdentityKeyStorePassPhrase
  7. [サーバ|キーストア & SSL] タブで、管理対象サーバの以下の信頼キーストア属性の設定を確認します。
    • [デモ信頼キーストア] - DemoTrust.jks
    • [型] - JKS
    • [Pass Phrase] - DemoTrustKeyStorePassPhrase
    • 注意 :nodemanager.properties ファイルは変更する必要はありません。ノード マネージャでは、自動的にデフォルト値がデモ用の ID キーストアと信頼キーストアになります。

ノード マネージャの SSL のプロダクション用コンフィグレーション : 主な手順

図 8-2 に、ノード マネージャの SSL のプロダクション用コンフィグレーションを示します。

図 8-2 ノード マネージャの SSL のプロダクション用コンフィグレーション

ノード マネージャの SSL のプロダクション用コンフィグレーション


 

注意 :次の手順では、ノード マネージャ、管理サーバ、および管理対象サーバが同じマシンで実行されていることを前提としています。

警告 :WebLogic Server Administration Console を使用してキーストアをコンフィグレーションする場合、コンフィグレーション プロセス中にパスワードをクリア テキストで入力します。パスワードは、コンフィグレーションが完成してノード マネージャが起動されると自動的に暗号化されます。デプロイメントをよりセキュアにするために、パスワードが盗用されないよう、ノード マネージャをコンフィグレーションしているマシンのインターネット接続を切断したり、マシンをファイアウォールで保護したりすることをお勧めします。

ノード マネージャに対して SSL をコンフィグレーションするには、次の手順に従います。

  1. ノード マネージャ、管理サーバ、および管理対象サーバの ID と信頼を取得します。

注意 :管理サーバ、管理対象サーバ、およびノード マネージャの ID と信頼を取得する場合は、デジタル証明書にマシンのホスト名が含まれている (デジタル証明書が URL と一致する) ことを確認します。

  1. ノード マネージャ、管理サーバ、および管理対象サーバの ID キーストアを作成します。ノード マネージャ、管理サーバ、および管理対象サーバが同じマシンで実行されている場合は、ID キーストアを共有できます。「プライベート キー、デジタル証明書、信頼性のある認証局の格納」を参照してください。
  2. ID キーストアにプライベート キーをロードします。「プライベート キー、デジタル証明書、信頼性のある認証局の格納」を参照してください。
  3. ノード マネージャ、管理サーバ、および管理対象サーバの信頼キーストアを作成します。ノード マネージャ、管理サーバ、および管理対象サーバが同じマシンで実行されている場合は、信頼キーストアを共有できます。「プライベート キー、デジタル証明書、信頼性のある認証局の格納」を参照してください。
  4. 信頼性のある CA 証明書を信頼キーストアにロードします。「プライベート キー、デジタル証明書、信頼性のある認証局の格納」を参照してください。
  5. コンフィグレーション ウィザードを実行し、新しい WebLogic ドメインを作成します。
  6. 管理サーバを起動します。
  7. WebLogic ドメインの管理ポートを有効にします。「ドメイン全体の管理ポートの有効化」を参照してください。
  8. 管理サーバのリスン アドレスを設定します。リスン アドレスは、管理サーバが実行されているマシンのホスト名です。このホスト名は、管理サーバのデジタル証明書の CN フィールドのホスト名と一致する必要があります。リスン アドレスが適切に設定されていない場合、ホスト名検証でエラーが発生するおそれがあります。
  9. 次のコマンドを使用すると、デジタル証明書の CN フィールドで指定されているホスト名を判別できます。

    keytool -list -v -keystore fulldirectorypathtokeystore\keystorename

  10. 管理サーバの ID キーストアをコンフィグレーションします。「キーストアのコンフィグレーション」を参照してください。
  11. 管理サーバの信頼キーストアをコンフィグレーションします。「キーストアのコンフィグレーション」を参照してください。
  12. 同じマシンで複数のサーバが動作している場合は、各サーバの管理ポートがユニークであるようにしてください。[サーバ|全般] タブにある [ローカル管理ポートのオーバーライド] 属性を使用すると、管理ポート番号をオーバーライドできます。管理サーバによって使用される管理ポート番号とは異なるポート番号を指定します。
  13. 管理対象サーバのリスン アドレスを、管理対象サーバが実行されているマシンのホスト名に設定します。このホスト名は、管理対象サーバのデジタル証明書のホスト名と一致する必要があります。
  14. 管理対象サーバの ID キーストアをコンフィグレーションします。「キーストアのコンフィグレーション」を参照してください。
  15. 管理対象サーバの信頼キーストアをコンフィグレーションします。「キーストアのコンフィグレーション」を参照してください。
  16. ノード マネージャ用のマシンを作成します。
    1. ノード マネージャのリスン アドレスを、ノード マネージャが実行されているマシンのホスト名に設定します。このホスト名は、ノード マネージャのデジタル証明書のホスト名と一致する必要があります。
    2. ノード マネージャのリスン ポートを設定します。このポート番号は、このマシンで動作するすべてのサーバのリスン ポート番号、SSL ポート番号、および管理ポート番号と同じにならないようにしてください。
    3. マシンに管理対象サーバを追加します。
    4. 詳細については、『WebLogic Server のコンフィグレーションと管理』の「ノード マネージャのコンフィグレーション、起動、および停止」を参照してください。

  17. ノード マネージャの nodemanager.properties ファイルを編集します。nodemanager.properties ファイルを編集します。
    1. 使用するキーストア コンフィグレーションを指定します。
    2. Keystores=CustomIdentityandCustomTrust

      Keystores=CustomIdentityandJavaStandardTrust

    3. ID キーストアに関する情報を指定します。
    4. CustomIdentityKeystoreType

      CustomIdentityAlias

      CustomIdentityKeystoreFileName

      CustomIdentityKeyStorePassPhrase

      CustomIdentityKeystoreType 属性は省略可能であり、デフォルトで JDK のセキュリティ ポリシー ファイルで定義されているキーストア タイプになります。

      CustomIdentityKeyStorePassPhrase 属性は、キーストアのタイプによっては省略可能です。すべてのキーストアで、キーストアに書き込むためにはパス フレーズが必須です。一部のキーストアでは読み込みにパス フレーズを必要としません。このプロパティを定義するかどうかは、キーストアの要件次第です。たとえば、WebLogic Server はキーストアから読み込むだけなのでパス フレーズは必要ありませんが、WebLogic Integration はキーストアに書き込むのでパス フレーズが必要です。

      CustomIdentityPrivateKeyPassPhrase

    5. 信頼キーストアに関する情報を指定します。
    6. カスタム信頼キーストアを使用する場合は、以下を指定します。

      CustomTrustKeystoreType

      CustomTrustKeystoreFileName

      CustomTrustKeyStorePassPhrase

      CustomTrustKeystoreType 属性は省略可能であり、デフォルトで JDK のセキュリティ ポリシー ファイルで定義されているキーストア タイプになります。

      CustomTrustKeyStorePassPhrase 属性は、キーストアのタイプによっては省略可能です。すべてのキーストアで、キーストアに書き込むためにはパス フレーズが必須です。一部のキーストアでは読み込みにパス フレーズを必要としません。このプロパティを定義するかどうかは、キーストアの要件次第です。たとえば、WebLogic Server はキーストアから読み込むだけなのでパス フレーズは必要ありませんが、WebLogic Integration はキーストアに書き込むのでパス フレーズが必要です。

      Java 標準信頼キーストアを使用する場合は、以下を指定します。

      Keystores=CustomIdentityandJavaStandardTrust

      JavaStandardTrustKeyStorePassPhrase

      JavaStandardTrustKeyStorePassPhrase 属性は、キーストアのタイプによっては省略可能です。すべてのキーストアで、キーストアに書き込むためにはパス フレーズが必須です。一部のキーストアでは読み込みにパス フレーズを必要としません。このプロパティを定義するかどうかは、キーストアの要件次第です。たとえば、WebLogic Server はキーストアから読み込むだけなのでパス フレーズは必要ありませんが、WebLogic Integration はキーストアに書き込むのでパス フレーズが必要です。

    7. ノード マネージャのリスン アドレスとリスン ポートを指定します。
    8. ListenAddress
      ListenPort

      手順 16 のマシンの作成時に指定したものと同じホスト名を指定します。

    9. IP アドレスではなくホスト名を使用する場合は、以下を指定します。
    10. ReverseDnsEnabled

    『WebLogic Server のコンフィグレーションと管理』の「ノード マネージャ プロパティ」を参照してください。

    注意 :プロパティを nodemanager.properties ファイルに追加するときには、ファイル名およびディレクトリ名でフォワード スラッシュまたはダブル バックスラッシュを使用します。

  18. WL_HOME\common\nodemanager\config にある nodemanager.hosts ファイルを編集して、ノード マネージャと通信する管理サーバが実行されるマシンをリストします。管理サーバは IP アドレス、または DNS の逆引き参照が使用される場合はホスト名で指定されます。
  19. ドメイン内の各マシンに更新された nodemanager.hosts ファイルがあることを確認します。nodemanger.hosts ファイルではデフォルトは localhost になっています。

    『WebLogic Server のコンフィグレーションと管理』の「ノード マネージャ ホスト ファイルの設定」を参照してください。

  20. ノード マネージャを起動します。
  21. 管理サーバを停止します。
  22. 管理サーバを起動します。

ファイルと WebLogic キーストア プロバイダの使い方

下位互換性を保持するため、WebLogic Server では、ノード マネージャの SSL のコンフィグレーション時に ID と信頼の格納方法の 1 つとして、ファイルと WebLogic キーストア プロバイダの使用がサポートされています。ただし、これらの方法はこのリリースでは非推奨となっています。また、ファイルに格納されたプライベート キーはパスワードで保護される場合とされない場合があります。パスワードで保護されていないプライベート キーは、セキュリティ攻撃に対して脆弱になります。ノード マネージャ、管理サーバ、および管理対象サーバの ID と信頼の格納方法を、キーストアにアップグレードすることをお勧めします。

ID と信頼の SSL 要件は、次のとおりです。

注意 :次の手順は、使用する管理サーバおよび各管理対象サーバ上で実行します。

ファイルまたは WebLogic キーストア プロバイダを使用して管理サーバまたは管理対象サーバの ID と信頼を格納するには、次の手順に従います。

  1. [サーバ] ノードを展開します。
  2. ID と信頼のコンフィグレーションを行うサーバの名前を選択します (exampleserver など)。
  3. [コンフィグレーション|キーストア & SSL] タブを選択します。
  4. デモ用の ID キーストアおよび信頼キーストアに関する情報が表示されます。

  5. このタブの [SSL コンフィグレーション] 領域で [変更...] リンクをクリックします。
  6. [SSL コンフィグレーション] ページが表示されます。

  7. [Files or Keystore Providers] オプションを選択します。
  8. [続行] をクリックします。
  9. WebLogic Server の ID と信頼の場所に関する情報を指定します。
    • [プライベート キーのファイル名] - WebLogic Server のプライベート キーのディレクトリの場所。この属性の値は、WebLogic Server のプライベート キーを (WebLogic キーストア プロバイダではなく) ファイルに格納した場合にのみ指定します。
    • [プライベート キーのエイリアス] - WebLogic Server のプライベート キーをキーストアからロードするときに指定されるエリアス。この属性の値は、WebLogic Server のプライベート キーを WebLogic キーストア プロバイダからアクセスされるキーストアに格納した場合にのみ指定します。
    • [Pass Phrase] - WebLogic Server のプライベート キーをキーストアにロードするときに指定されるパスワード。この属性の値は、WebLogic Server のプライベート キーを WebLogic キーストア プロバイダからアクセスされるキーストアに格納した場合にのみ指定します。[Pass Phrase の確認] フィールドにパスワードをもう一度入力します。プライベート キー ファイルをパスワードで保護した場合は、サーバを起動するときに weblogic.management.pkpassword コマンドライン引数を指定します。
    • [サーバ証明書ファイル名] - WebLogic Server のデジタル証明書のディレクトリの場所。3 つ以上の証明書からなる証明書チェーンを使用する場合は、PEM フォーマットの証明書ファイルにチェーン全体を含める必要があります。
  10. [続行] をクリックします。
  11. [完了] をクリックします。
  12. WebLogic Server を再起動します。
  13. 管理サーバの起動時に、次のコマンドライン引数を使用して信頼キーストアの場所を指定します。
  14. -Dweblogic.security.SSL.TrustedCAKeyStore=path_to_keystore

  15. [サーバ|コンフィグレーション|リモートスタート] タブで、次のように管理対象サーバの信頼キーストアの場所を指定します。
  16. weblogic.security.SSL.trustedCAKeyStore

ファイルまたは JKS キーストアを使用してノード マネージャの ID と信頼を格納するには、ノード マネージャの起動時に以下のコマンドライン引数を指定します。

 


SSL を使用した RMI over IIOP のコンフィグレーション

SSL を使用すると、RMI リモート オブジェクトへの IIOP 接続を保護できます。SSL は、認証を通じて接続を保護し、オブジェクト間のデータ交換を暗号化します。

SSL を使用して RMI over IIOP 接続を保護するには、次の手順に従います。

  1. SSL を使用するように WebLogic Server をコンフィグレーションします。
  2. SSL を使用するようにクライアント Object Request Broker (ORB) をコンフィグレーションします。SSL のコンフィグレーションについては、クライアント ORB の製品マニュアルを参照してください。
  3. host2ior ユーティリティを使用して、WebLogic Server IOR をコンソールに出力します。host2ior ユーティリティでは、SSL 接続用と非 SSL 用に 2 種類のインターオペラブル オブジェクト参照 (IOR) が出力されます。IOR のヘッダは、IOR が SSL 接続で使用できるかどうかを示します。
  4. SSL IOR は、WebLogic Server JNDI ツリーにアクセスする CosNaming サービスへの初期参照を取得するときに使用します。

RMI over IIOP の使い方の詳細については、『WebLogic RMI プログラマーズ ガイド』と『WebLogic RMI over IIOP プログラマーズ ガイド』を参照してください。

 


SSL 証明書の検証

以前のリリースでは、WebLogic Server は証明書チェーンの各証明書が認証局によって発行されたことを保証しませんでした。この問題は、誰かが信頼性のある認証局から個人用証明書を取得し、その証明書を使用して他の証明書を発行しても、WebLogic Server は無効な証明書を検出できないことを意味しました。このリリースでは、WebLogic Server で使用するすべての X509 V3 CA 証明書は CA として定義される基本制御拡張を備えている必要があります。このため、証明書チェーンのすべての証明書が認証局によって発行されたことが確認されます。デフォルトでは、この条件を満たしていない認証局の証明書は拒否されます。この節では、証明書の検証レベルを制御するコマンドライン引数について説明します。

証明書検証に合格しない証明書チェーンを持つ WebLogic Server が起動された場合、クライアントでそれを拒否できることを示す情報メッセージがログに記録されます。

証明書検証のレベルの制御

デフォルトでは、WebLogic Server は CA として定義される基本制御拡張を持たない証明書チェーンの証明書はすべて拒否します。ただし、この要件を満たさない証明書を使用したり、IETF RFC 2459 標準に準拠するようにセキュリティ レベルを強化したりすることもできます。次のコマンドライン引数を使用して、WebLogic Server で実行される証明書検証のレベルを制御できます。

-Dweblogic.security.SSL.enforceConstraints=option

表 8-2 に、コマンドライン引数のオプションの説明を示します。

表 8-2 -Dweblogic.security.SSL.enforceConstraints のオプション

オプション

説明

strong または true

このオプションを使用すると、CA 証明書の基本制御拡張が CA として定義されていることを確認できる。

次に例を示します。

-Dweblogic.security.SSL.enforceConstraints=strong

または

-Dweblogic.security.SSL.enforceConstraints=true

デフォルトでは、WebLogic Server はこのレベルの証明書検証を行う。

strict

このオプションを使用すると、CA 証明書の基本制御拡張が CA として定義されており、かつ、それが重大 (クリティカル) に設定されているかどうかを確認できる。このオプションは IETF RFC 2459 標準を強制する。

次に例を示します。

-Dweblogic.security.SSL.enforceConstraints=strict

市販の CA 証明書の一部が IETF RFC 2459 標準に準拠していないため、このオプションはデフォルトではない。

off

このオプションを使用すると、基本制約拡張チェックが無効になる。残りの証明書検証は依然として行われる。

大部分の商用ベースの認証局から購入した CA 証明書は、デフォルトの strong オプションで機能するはずである。

次に例を示します。

-Dweblogic.security.SSL.enforceConstraints=off

このオプションはプロダクション環境では使用しないこと。代わりに、IETF RFC 2459 標準に準拠した新しい CA 証明書を購入すること。


 

証明書の証明書ポリシーの受け入れ

WebLogic Server は、X.509 証明書の証明書ポリシー拡張を一部サポートしています。weblogic.security.SSL.allowedcertificatepolicyids 引数を使用して、証明書ポリシー ID のカンマ区切りリストを指定できます。WebLogic Server は、重大 (クリティカル) な証明書ポリシー拡張を含む証明書を受信すると、許可された証明書ポリシーのリストに証明書ポリシーが記載されているかどうか、およびサポートされていないポリシー修飾子があるかどうかを検証します。このリリースの WebLogic Server は、認証実施規定 (CPS) ポリシー修飾子をサポートしていますが、ユーザ通知修飾子はサポートしていません。ID 2.5.29.32.0 の特殊なポリシー anyPolicy を含む証明書も受け入れられます。このポリシーは、その CA が当該証明書でポリシーを制限する意志がないことを示します。

証明書ポリシーの受け入れを有効化するには、次の引数を指定して WebLogic Server を起動します。

-Dweblogic.security.SSL.allowedcertificatepolicyids <identifier1>,<identifier2>,...

この引数には、ルート証明書までの証明書チェーンに含まれている可能性のある、重大 (クリティカル) な拡張を含むすべての証明書の証明書ポリシー識別子をカンマ区切りリストで指定する必要があります。このようにしない場合、WebLogic Server は、この種の証明書チェーンを受け入れることができません。

証明書チェーンのチェック

WebLogic Server には、既存の証明書チェーンが WebLogic Server によって拒否されるかどうかをチェックするための ValidateCertChain コマンドライン ユーティリティが用意されています。このユーティリティは、PEM ファイル、PKCS-12 ファイル、PKCS-12 キーストア、および JKS キーストアの証明書チェーンを使用します。このユーティリティでは、証明書チェーン全体が使用される必要があります。以下は、ValidateCertChain コマンドライン ユーティリティの構文です。

java utils.ValidateCertChain -file pemcertificatefilename
java utils.ValidateCertChain -pem pemcertificatefilename
java utils.ValidateCertChain -pkcs12store pkcs12storefilename
java utils.ValidateCertChain -pkcs12file pkcs12filename password
java utils.ValidateCertChain -jks alias storefilename [storePass]

有効な証明書チェーンの例 :

java utils.ValidateCertChain -pem zippychain.pem

Cert[0]: CN=zippy,OU=FOR TESTING
ONLY,O=MyOrganization,L=MyTown,ST=MyState,C=US

Cert[1]: CN=CertGenCAB,OU=FOR TESTING
ONLY,O=MyOrganization,L=MyTown,ST=MyState,C=US
Certificate chain appears valid

無効な証明書チェーンの例 :

java utils.ValidateCertChain -jks mykey mykeystore

Cert[0]: CN=corba1,OU=FOR TESTING ONLY, O=MyOrganization,L=MyTown,ST=MyState,C=US
CA cert not marked with critical BasicConstraint indicating it is a CA
Cert[1]: CN=CACERT,OU=FOR TESTING ONLY, O=MyOrganization,L=MyTown,ST=MyState,C=US

Certificate chain is invalid

証明書に関する問題のトラブルシューティング

以前のリリースの WebLogic Server では正常に機能していた SSL 通信で予期しないエラーが発生するようになった場合は、WebLogic Server が使用する証明書チェーンが検証に合格しないことが原因になっている可能性があります。

証明書チェーンが拒否された場所を特定し、受け入れ可能なもので証明書チェーンを更新するか、または -Dweblogic.security.SSL.enforceConstraints コマンドライン引数の設定を変更するかを決定してください。

証明書の問題に対処するには、次のいずれかの解決策を使用します。

 


WebLogic Server での nCipher JCE プロバイダの使い方

注意 :JCE プロバイダは、JDK 1.4 で入手可能な Java Cryptography Extension (JCE) のアプリケーション プログラミング インタフェース (API) を使用して記述されます。このタイプのプロバイダは、WebLogic セキュリティ サービス プロバイダ インタフェース (SSPI) を使用して記述されたプロバイダとは異なります。デフォルトでは WebLogic Server では JCE プロバイダは提供されません。

SSL は、Web サーバで使用できるリソースの保護における重要なコンポーネントです。しかし、大量の SSL トラフィックによって、Web サーバのパフォーマンスを低下させるボトルネックが発生することがあります。JCE プロバイダは、Web サーバの SSL プロセスの負荷を軽減し、サーバがより多くのトランザクションを処理できるようにします。また、キーの整合性と機密性を保持するための強力な暗号化プロセスも提供します。

WebLogic Server では、以下の JCE プロバイダの使用がサポートされています。

nCipher JCE プロバイダをインストールするには、次の手順に従います。

  1. 製品のマニュアルに従って、nCipher JCE プロバイダのハードウェアを設置し、コンフィグレーションします。
  2. nCipher JCE プロバイダのファイルをインストールします。以下のファイルが必要です。
    • JCE 1.2.1 フレームワーク JAR
    • 管轄ポリシー ファイル
    • JCE プロバイダ
    • JAR ファイルを署名した証明書
    • 注意 :この手順は、nCipher JCE プロバイダのハードウェアの設置作業の一部として実行済みになっている場合もあります。その場合は、ファイルが適切にインストールされていることを確認してください。

    ファイルは、以下のいずれかの方法でインストールされます。

    • インストール済みの拡張として指定する。ファイルを以下のいずれかの場所にコピーします。
    • Windows NT

      %JAVA_HOME%\jre\lib\ext

      以下に例を示します。

      %WL_HOME%\jdk141\jre\lib\ext

      UNIX

      $JAVA_HOME/jre/lib/ext

      以下に例を示します。

      $WL_HOME/jdk141/jre/lib/ext

    • サーバの CLASSPATH に設定する。
  3. Java セキュリティ プロパティ ファイル (java.security) を編集して、WebLogic Server で承認されている JCE プロバイダのリストに nCipher JCE プロバイダを追加します。Java セキュリティ プロパティ ファイルは、以下の場所にあります。
  4. Windows NT

    %JAVA_HOME%\jre\lib\security\java.security

    UNIX

    $JAVA_HOME/jre/lib/security/java.security

    次のように nCipher JCE プロバイダを指定します。

    security.provider.n=com.ncipher.provider.km.mCipherKM

    各要素の説明は次のとおりです。

    n は、特定のプロバイダが指定されていない場合に、要求されたアルゴリズムに対してプロバイダが検索される順序を決定する優先順序です。順序は 1 が基準になり、1 が最も優先されます。その後、2、3、... と続きます。

    nCipher JCE プロバイダは、セキュリティ プロパティ ファイルで RSA JCA プロバイダの次に来る必要があります。次に例を示します。

    security.provider.1=sun.security.provider.Sun

    security.provider.2=com.sun.rsajca.Provider

    security.provider.3=com.ncipher.provider.km.mCipherKM

  5. WebLogic Server を起動します。
  6. nCipher JCE プロバイダが正常に機能していることを確認するには、nCipher の製品マニュアルに従ってデバッグを有効にします。

 


SSL プロトコルのバージョンの指定

WebLogic Server では、SSL V3.0 と TLS V1.0 の両方のプロトコルがサポートされています。デフォルトでは、WebLogic Server が SSL サーバとして動作する場合、WebLogic Server は SSL 3.0 または TLS 1.0 プロトコル バージョンのいずれかに同意し、クライアントのハロー メッセージで指定されたほうのプロトコルを使用します。WebLogic Server が SSL クライアントとして動作する場合、WebLogic Server はその SSL V2.0 のハロー メッセージで TLS1.0 を対象プロトコルとして指定しますが、SSL サーバがサポートする最上位バージョンが SSL V3.0 である場合は SSL V3.0 にも同意します。ピアは SSL V3.0 または TLS V1.0 メッセージで応答する必要があり、応答しなければ SSL 接続は中断されます。

ほとんどの場合は SSL V3.0 プロトコルで問題ありませんが、TLS V1.0 プロトコルが必要とされる場面 (互換性、SSL のパフォーマンス、およびセキュリティ要件が最大の環境) もあります。weblogic.security.SSL.protocolVersion コマンドライン引数を使用すると、SSL 接続で使用するプロトコルを指定できます。

注意 :SSL V3.0 プロトコルと TLS V1.0 プロトコルは入れ替えできません。TLS V1.0 プロトコルは、すべての必要な SSL クライアントがそのプロトコルを使用できることが確かである場合にのみ使用します。

次のコマンドライン引数を指定すると、WebLogic Server は SSL V3.0 または TLS V1.0 接続のみをサポートします。

 


SSL プロトコルを使用した weblogic.Admin からの WebLogic Server への接続

SSL プロトコルを使用して weblogic.Admin から WebLogic Server に接続するには、サーバで双方向 SSL を無効にし、クライアントの URL でセキュアなサーバ ポートを使用し、クライアントの信頼を指定し、クライアントによるホスト名検証の使用方法をコンフィグレーションする必要があります。以降の節では、これらの手順について詳しく説明します。

SSL サーバでの双方向 SSL の無効化

weblogic.Admin の使用時に ID を指定することはできません。SSL サーバで双方向 SSL がコンフィグレーションされている場合は、ID (プライベート キーとデジタル証明書または証明書チェーン) が必要です。したがって、weblogic.Admin を使用するときには双方向 SSL は有効にできません。weblogic.Admin から SSL サーバへの SSL 接続を確立する前には、SSL サーバが双方向 SSL を使用するようにコンフィグレーションされていないようにしてください。双方向 SSL が SSL サーバで有効になっていると、SSL 接続は失敗します。

WebLogic Server の使用時に双方向 SSL を無効にするには、次の手順に従います。

  1. [サーバ] ノードを展開します。
  2. SSL サーバとして機能するサーバを選択します。
  3. [コンフィグレーション|キーストア & SSL] タブを選択します。
  4. [詳細オプション] セクションの [表示] リンクをクリックします。
  5. [相互クライアント認証の動作] 属性を [クライアント証明書を要求しない] または [クライアント証明書を要求 (強制しない)] に設定します。
  6. [適用] をクリックします。
  7. WebLogic Server を再起動します。

URL でのセキュア ポートの使用

SSL プロトコルを使用して接続を行うには、weblogic.Admin の URL でセキュアなプロトコルとポートを指定します。次に例を示します。

weblogic.Admin -url t3s://localhost:9002

weblogic.Admin の信頼の指定

すべての SSL クライアントは、信頼を指定する必要があります。信頼は、どの信頼性のある認証局がクライアントから信頼されるのかを指定する CA 証明書の集合です。SSL 接続を確立するためには、クライアントはサーバのデジタル証明書を発行した認証局を信頼する必要があります。

weblogic.Admin を使用する場合、信頼性のある CA 証明書はキーストアに格納する必要があります。デフォルトでは、JDK (...\jre\lib\security\cacerts) から利用できるすべての信頼性のある認証局が weblogic.Admin から信頼されます。次のコマンドライン引数を必要に応じて使用すると、JDK cacerts 信頼キーストアのパスワードを指定できます。

-Dweblogic.security.JavaStandardTrustKeyStorePassPhrase=password

password は、Java 標準信頼キーストアのパスワードです。このパスワードは、キーストアを作成するときに定義します。

以下のタイプの信頼のいずれかを指定することもできます。

weblogic.Admin のホスト名検証の指定

デフォルトでは、weblogic.Admin はホスト名の検証チェックを実行します。この検証では、サーバから受信したデジタル証明書の CN フィールドと、サーバに接続するためにクライアントが使用した URL のサーバ名が比較されます。CN フィールドとサーバ名が一致しないと、ホスト名の検証チェックはパスできません。このチェックは、介在者の攻撃を防ぐために実行されます。このリリースの WebLogic Server のデフォルトのホスト名検証では、URL に localhost または IP アドレスが含まれ、デジタル証明書の CN フィールドがローカル ホストの名前と一致するケースが処理されます。

チェックを無効にするには、次のコマンドライン引数を指定します。

-Dweblogic.security.SSL.ignoreHostnameVerification=true

注意 :SSL サーバがその URL で IP アドレスを指定した場合は、ホスト名の検証チェックを無効にしてください。

次のコマンドライン引数を使用すると、カスタム ホスト名検証を指定できます。

-Dweblogic.security.SSL.hostnameVerifier=classname

classname には weblogic.security.SSL.HostnameVerifier インタフェースの実装を指定します。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次