BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

WebLogic Security の管理

 Previous Next Contents PDF で侮ヲ  

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 1.0 仕様を実装しています。

注意: このリリースの WebLogic Server のプロキシ プラグインは、SSL 3.0 だけをサポートしています。

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

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

 


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

プライベート キー、デジタル証明書、および信頼性のある認証局 (CA) は、サーバの ID を確立および検証します。

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

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

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

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

 


一方向および双方向 SSL

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

 


SSL の設定 : 主な手順

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

  1. WebLogic Server 用の ID (プライベート キーとデジタル証明書) および信頼 (信頼性のある認証局の証明書) を取得します。この手順を行うには、WebLogic Server キットのデジタル証明書、プライベート キー、信頼性のある CA の証明書を使用するか、CertGen ユーティリティ、Certificate Request Generator サーブレット、Sun Microsystem の keytool ユーティリティ、または Entrust や Verisign などの信頼性のあるベンダを使用します。

  2. プライベート キー、デジタル証明書、信頼性のある CA の証明書を格納します。デジタル証明書は、常に WebLogic Server のドメイン ディレクトリ内のファイルに格納します。プライベート キーと信頼性のある CA の証明書は、WebLogic キーストア プロバイダがアクセスするキーストアか、またはドメイン ディレクトリ内のファイルのいずれかに格納します。

  3. SSL ポートを有効にします。デフォルトでは、SSL ポートはパフォーマンスを低下させるため有効になっていません。

  4. WebLogic Server Administration Console またはサーバ起動スクリプトで SSL 属性を設定します。SSL 属性では、プライベート キー、デジタル証明書、および信頼性のある CA の証明書の格納場所を定義します。また、必要な場合、クライアント証明書の提示を必須とする属性を設定します (双方向 SSL の場合)。

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

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

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

SSL ポートの有効化

一方向 SSL の属性の設定

双方向 SSL の属性の設定

 


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

SSL を使用するには、プライベート キー、対となる公開鍵が組み込まれたデジタル証明書、およびデジタル証明書に組み込まれたデータを検証できる信頼性のある認証局が必要となります。WebLogic Server は、以下のソースのプライベート キー、デジタル証明書、信頼性のある認証局をサポートしています。

WebLogic Server は、.pem または .der フォーマットのデジタル証明書を使用できます。

.pem (privacy-enhanced mail) フォーマットのファイルは次の行で始まります。

----BEGIN CERTIFICATE----

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

----END CERTIFICATE----

.pem フォーマット ファイルは、複数のデジタル証明書をサポートしています (たとえば証明書チェーンを含めることができます)。ただし、ファイル内のデジタル証明書の順序は重要です。たとえば、認証局 A、認証局 B (認証局 A の発行元)、認証局 C (認証局 B の発行元) のようにルート認証局まで並んでいる必要があります。

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

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

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

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

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

CertGen ユーティリティは、プライベート キーおよびデモ用認証局 (CertGenCA) によって署名されたデジタル証明書を作成します。CertGen ユーティリティによって生成されたデジタル証明書は、対象マシンのホスト名を共通名として持ちます。ホスト名検証を使用する場合、デジタル証明書は SSL を使用するマシンごとに生成する必要があります。

CertGen ユーティリティは、2 つの .pem ファイルと 2 つの .der ファイルを生成します。Web ブラウザで .der ファイルを参照して、生成された証明書の詳細を確認します。.pem ファイルは、WebLogic Server を起動するときか、またはクライアントでデジタル証明書を使用するときに使用します。

証明書を生成するには、以下の操作を行います。

  1. CertGen ユーティリティを実行しているディレクトリに、次のファイルをコピーします。

    • WL_HOME¥server¥lib¥CertgenCA.der - WebLogic Server によって信頼されている認証局のデジタル証明書

    • WL_HOME¥server¥lib¥CertGenCAKey.der − WebLogic Server によって信頼されている認証局のプライベート キー

  2. コマンド プロンプトに対して、次のコマンドを入力します。

    prompt> java utils.CertGen password certfile keyfile [export] [hostname]

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

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

    • certfile はデジタル証明書ファイルの名前。このファイルはドメイン ディレクトリに置きます。

    • keyfile は生成されたプライベート キー ファイルの名前。このファイルはドメイン ディレクトリに置きます。

    • hostname はデジタル証明書の取得対象のマシン名。このオプションを指定すると、ホスト名検証を使用することができます。

    デフォルトでは、CertGen ツールは国内向けレベルの証明書を生成します。ツールで国外向けレベルの証明書を生成する場合は、[export] オプションを指定します。ホスト名を使用する国内向けレベルのデジタル証明書を輸出するには、[export] " " と指定します。

CertGen ツールは、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 を利用します。このケースでは、短いホスト名が返されます。

Certificate Request Generator サーブレットの使い方

WebLogic Server デプロイメントをプロダクション環境で使用する前に、プライベート キーと証明書を信頼性のある認証局 (VeriSign や Entrust.net など) から取得しておく必要があります。 認証局 (CA) からデジタル証明書を取得するには、CSR と呼ばれる特定のフォーマットでリクエストを提出する必要があります。Certificate Request Generator サーブレットは、ユーザから情報を収集して、プライベート キー ファイルと CSR を生成します。生成された CSR を、認証局に提出します。

CSR を生成するには、次の手順に従います。

  1. certificate.war ファイルを applications ディレクトリにコピーします (このファイルはサーバの起動前かサーバの実行中にコピーします)。この手順は、コンフィグレーション ウィザードによって実行されます。

  2. Web ブラウザで、Certificate Request Generator サーブレットの URL を次のように入力します。

    http (または https)://hostname:port/certificate/

    URL の各要素は次のように定義します。

    • hostname は、WebLogic Server を実行しているマシンの DNS 名。

    • port は、WebLogic Server が SSL 接続をリスンするポートの番号。 デフォルトでは 7002。 7002 は、WebLogic Server が SSL 通信をリスンするデフォルト ポートです。WebLogic Server が通信をリスンするポートを任意に指定できます。

      たとえば、WebLogic Server が ogre というマシン上で動作しており、Certificate Request Generator サーブレットを実行するために SSL 通信をデフォルト ポートの 7002 でリスンするようコンフィグレーションされている場合は、Web ブラウザに次の URL を入力しなければなりません。

      https://ogre:7002/certificate/

  3. Certificate Request Generator サーブレットによって、Web ブラウザからフォームがロードされます。次の表の情報を参照して、ブラウザに表示されたフォームに必要な情報を入力します。

    表6-1 Certificate Request Generator フォームのフィールド

    フィールド

    説明

    [Country code]

    国ごとの 2 文字の ISO コード。アメリカのコードは US。

    [Organizational unit name]

    組織の事業部、部、またはその他の運営単位の名前。

    [Organization name]

    組織の名前。認証局が、この組織に登録されているドメインに所属するホスト名をこの属性に入力するよう要求する場合がある。

    [Email address]

    管理者の E メール アドレス。このアドレスがデジタル証明書の送信先になる。

    [Full host name]

    デジタル証明書のインストール先となる WebLogic Server の完全修飾名。この名前は、WebLogic Server の DNS ルックアップ用の名前 (たとえば node.com) である。Web ブラウザでは、URL のホスト名とデジタル証明書の名前を比較する。ホスト名を後で変更した場合は、新しいデジタル証明書を要求しなければならない。

    [Locality name (city)]

    市または町の名前。市で付与されたライセンスを使用して運用する場合は、この属性は必須、つまり、ライセンスを付与された市の名前を入力しなければならない。

    [State name]

    組織の所在地がアメリカまたはカナダの場合に、組織が業務を行っている州の名前。短縮してはならない。

    [Private Key Password]

    プライベート キーの暗号化に使用するパスワード。

    WebLogic Server で保護されたキーを使用するために、このフィールドにパスワードを入力する。 キーが使用される場合は常にパスワードが要求される。 サーブレットで、PKCS-8 で暗号化されたプライベート キーが作成される。

    [Strength]

    生成するキーの長さ (ビット単位)。キーが長いほど、暗号の解読はより困難になる。

    国内バージョンの WebLogic Server では、512 ビット、1024 ビット、または 2048 ビットのキーを選択できる。1024 ビットのキーが望ましい。


     

  4. [Generate Request] ボタンをクリックします。

    必須属性が空白の場合、または属性に無効な値が指定されている場合は、Certificate Request Generator サーブレットによってメッセージが表示されます。メッセージが表示された場合は、ブラウザの [戻る] ボタンをクリックして、エラーを修正します。

    すべての属性が受け付けられると、Certificate Request Generator サーブレットは次のファイルを WebLogic Server のスタート ディレクトリに作成します。

    • hostname-key.der − プライベート キー ファイル。

    • hostname-request.dem − バイナリ フォーマットの証明書リクエスト ファイル。

    • hostname-request.pem − 認証局に提出する CSR ファイル。このファイルの内容は .dem ファイルと同じデータですが、E メールにコピーしたり、Web フォームに貼り付けたりできるように、ASCII でエンコードされています。

  5. 認証局を選択し、その認証局の Web サイトの指示に従って、デジタル証明書を購入します。

    • VeriSign, Inc. では、WebLogic Server 用に 2 つのオプションを用意しています。1 つは、国内および国外用の Web ブラウザ向けの強力な 128 ビット暗号化を特徴とする Global Site Services、もう 1 つは、国内用 Web ブラウザに 128 ビットの暗号を、国外用 Web ブラウザには 40 ビットの暗号を提供する Secure Site Services です。

    • Entrust.net の証明書は、国内用 Web ブラウザに 128 ビットの暗号を、国外用 Web ブラウザに 40 ビットの暗号を提供します。

証明書チェーンの使い方

WebLogic Server では、証明書チェーンを使用することができます。

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

  1. すべてのデジタル証明書が PEM フォーマットであることを確認します。デジタル証明書が DER フォーマットの場合、der2pem ユーティリティを使用してフォーマットを変換することができます。 Microsoft から発行されたデジタル証明書を使用する場合は、Microsoft p7b フォーマットから PEM フォーマットへの変換を参照してください。ここでは、その他のタイプのデジタル証明書を変換する手順について説明します。必要な作業は、デジタル証明書を Base 64 フォーマットで保存することだけです。

  2. テキスト エディタを起動して、すべてのデジタル証明書ファイルを 1 つのファイルに含めます。順序は重要です (ファイルは信頼の順序に従って含めます)。サーバのデジタル証明書はファイル内の最初のデジタル証明書でなければなりません。そのデジタル証明書の発行元が次のファイルとなるようにして続けて、最後をルート認証局の自己署名デジタル証明書にします。このデジタル証明書はファイル内の最後のデジタル証明書でなければなりません。

    デジタル証明書とデジタル証明書の間には空白行を入れないでください。

  3. WebLogic Server Administration Console の [SSL Attributes] タブの [サーバ証明書ファイル] にファイルを指定します。

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

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

-----BEGIN CERTIFICATE-----
MIICyzCCAjSgAwIBAgIBLDANBgkqhkiG9w0BAQQFADCBtjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk
NhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xFTATBgNVBAoTDEJFQSBXZWJMb2dpYzERMA
8GA1UECxMIU2VjdXJpdHkxLzAtBgNVBAMTJkRlbW8gQ2VydGlmaWNhdGUgQXV0aG9yaXR5IENvbnN0cm
FpbnRzMR8wHQYJKoZIhvcNAQkBFhBzZWN1cml0eUBiZWEuY29tMB4XDTAyMTEwMTIwMDIxMloXDTA2MTA
xNTIwMDIxMlowgZ8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4g
RnJhbmNpc2NvMRUwEwYDVQQKEwxCRUEgV2ViTG9naWMxETAPBgNVBAsTCFNlY3VyaXR5MRkwFwYDVQQDE
xB3ZWJsb2dpYy5iZWEuY29tMR4wHAYJKoZIhvcNAQkBFg9zdXBwb3J0QGJlYS5jb20wgZ8wDQYJKoZIhv
cNAQEBBQADgY0AMIGJAoGBAMJX8nKUgsFej8pEu/1IVcHUkwY0c2JbBzOryu3sce4QjX+rGxiCjoPm2MY
yts2BvonuJ6CztdZf8B/LBEWCz+qRrtdFn9mKSZWGvrAkmMPz2RhXEOThpoRo5kZz2FQ9XF/PxIJXTYCM
7yooRBwXoKYjquRwiZNtUiU9kYi6Z3prAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAh2eqQGxEMUnNTwEUD
0tBq+7YuAkjecEocGXvi2G4YSoWVLgnVzJoJuds3c35KE6sxBe1luJQuQkE9SzALG/6lDIJ5ctPsHFmZz
ZxY7scLl6hWj5ON8oN2YTh5Jo/ryqjvnZvqiNIWe/gqr2GLIkajC0mz4un1LiYORPig3fBMH0=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIC+jCCAmOgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBtjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhb
Glmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xFTATBgNVBAoTDEJFQSBXZWJMb2dpYzERMA8GA1
UECxMIU2VjdXJpdHkxLzAtBgNVBAMTJkRlbW8gQ2VydGlmaWNhdGUgQXV0aG9yaXR5IENvbnN0cmFpbnR
zMR8wHQYJKoZIhvcNAQkBFhBzZWN1cml0eUBiZWEuY29tMB4XDTAyMTEwMTIwMDIxMVoXDTA2MTAxNjIw
MDIxMVowgbYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhb
mNpc2NvMRUwEwYDVQQKEwxCRUEgV2ViTG9naWMxETAPBgNVBAsTCFNlY3VyaXR5MS8wLQYDVQQDEyZEZW
1vIENlcnRpZmljYXRlIEF1dGhvcml0eSBDb25zdHJhaW50czEfMB0GCSqGSIb3DQEJARYQc2VjdXJpdHl
AYmVhLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3ynD8l5JfLob4g6d94dNtI0Eep6QNl9b
blmswnrjIYz1BVjjRjNVal9fRs+8jvm85kIWlerKzIMJgiNsj50WlXzNX6orszggSsW15pqV0aYE9Re9K
CNNnORlsLjmRhuVxg9rJFEtjHMjrSYr2IDFhcdwPgIt0meWEVnKNObSFYcCAwEAAaMWMBQwEgYDVR0TAQ
H/BAgwBgEB/wIBATANBgkqhkiG9w0BAQQFAAOBgQBS+0oqWxGyqbZO028zf9tQT2RKojfuwywrDoGW96U
n5IqpFnBHIu5atliJo3OUpiH18KkwLN8DVP/3t3K3O3kXdIuLbqAL0i5xyBlAhr7gE5eVhIyeMg7ETBPL
yGO2BF13Y24LlsO+MX9jW7fxMraPN608QeJXkZw0E0cGwrw2AQ==
-----END CERTIFICATE-----

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

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

  1. Windows 2000 の Windows エクスプローラで、変換するファイル (filename.p7b) をクリックします。

    証明書ウィンドウが表示されます。

  2. 証明書ウィンドウの左ペインで、変換するファイルを展開します。

  3. 証明書オプションを選択します。

    p7b ファイル内の証明書のリストが表示されます。

  4. PEM フォーマットに変換する証明書を選択します。

    [Certificate Export] ウィザードが表示されます。

  5. [次へ] をクリックします。

  6. Base64 Encoded Cert オプションを選択します (PEM フォーマットをエクスポートします)。

  7. [次へ] をクリックします。

  8. 変換したデジタル証明書の名前を入力します。

  9. [完了] をクリックします。

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

独自の認証局の使い方

企業の多くは、独自の認証局にもなっています。こうした信頼性のある認証局を WebLogic Server で使用するには、次の手順に従います。

  1. 信頼性のある CA の証明書が PEM フォーマットであることを確認します。デジタル証明書が DER フォーマットの場合、der2pem ユーティリティを使用してフォーマットを変換することができます。 Microsoft から発行されたデジタル証明書を使用する場合は、Microsoft p7b フォーマットから PEM フォーマットへの変換を参照してください。

  2. 信頼性のある CA の証明書を、ファイルまたは WebLogic キーストア プロバイダがアクセスする JKS キーストアに格納します。 詳細については、プライベート キー、デジタル証明書、信頼性のある認証局の格納を参照してください。

  3. その信頼性のある認証局を使用するよう、WebLogic Server をコンフィグレーションします。 詳細については、一方向 SSL の属性の設定を参照してください。

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

低レベルのセキュリティのブラウザ証明書は、Web ブラウザを使って簡単に取得できます (通常は、[Option] または [Preferences] の [Security] メニューを選択します)。[個人用証明書] の項目に移動して、新しいデジタル証明書を要求します。要求者の個人情報が求められます。

受け取ったデジタル証明書には、名前、公開鍵、および第三者による認証を受けたいその他の情報 (たとえば電子メール アドレス) などの公開情報が入っています。デジタル証明書は、認証が要求されたときに提示します。

デジタル証明書の取得プロセスの一部として、Web ブラウザは公開鍵/プライベート キーのペアを生成します。プライベート キーは秘密にしておく必要があります。デジタル証明書の取得プロセス自体が安全に行われるように、プライベート キーはローカル ファイル システムに格納し、Web ブラウザを操作するマシン上に置かないようにしてください。一部のブラウザでは、保存されていないパスワードを使用してプライベート キーを暗号化することができます。プライベート キーを暗号化する場合、Web ブラウザではセッションごとにパスワードの入力を少なくとも 1 回求められます。

デジタル証明書が複数のブラウザ (または同じブラウザで異なるバージョン) に関して常に有効とはならないことに注意してください。

 


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

プライベート キー、デジタル証明書、信頼性のある CA を取得したら、WebLogic Server が ID 検証にそれらを使用できるよう、それらを格納する必要があります。デジタル証明書はファイルだけに格納できます。プライベート キーは、ファイルまたは WebLogic キーストア プロバイダがアクセスするキーストアに格納できます。信頼性のある CA の証明書はファイルまたは JKS キーストアに格納できます。キーストアは、WebLogic キーストア プロバイダからアクセスしたり、コマンドラインで指定したりできます。

キーストアを作成してプライベート キーと信頼性のある認証局をそのキーストアにロードする

キーストアは、プライベート キー、デジタル証明書、および信頼性のある CA の証明書を格納するファイルを作成および管理するためのメカニズムです。このリリースの WebLogic Server では JKS キーストアのみサポートされています。WebLogic キーストア プロバイダは、キーストアのインスタンスを検索します。次のユーティリティを使用して、キーストアを作成し、プライベート キーと信頼性のある CA の証明書をそのキーストアにロードします。

注意: keytool ユーティリティでは、プライベート キーをキーストアにインポートするときに各プライベート キーのデジタル証明書が必要になります。このデジタル証明書は、WebLogic Server では使用されません。

keytool ユーティリティでは新しいプライベート キーと信頼性のある CA の証明書をキーストアにロードできますが、既存のプライベート キーをファイルからキーストアにインポートすることはできません。代わりに WebLogic ImportPrivateKey ユーティリティを使用してください。

プライベート キーと信頼性のある CA の証明書用に 1 つのキーストアを作成するか、またはプライベート キー用に 1 つ、信頼性のある CA の証明書用に 1 つ、合わせて 2 つのキーストアを作成します。ID と信頼の両方で 1 つのキー ストアを使用することもできますが、以下の理由により、ID と信頼で別々のキー ストアを使用することをお勧めします。

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

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

マシンはドメイン全体で同じ信頼ルールを使用する傾向がありますが (つまり、同じ信頼性のある CA のセットを使用する)、ID はサーバごとになる傾向があります。 ID はプライベート キーを必要とし、プライベート キーはマシン間でコピーを行うべきではありません。 したがって、そのマシンに必要なサーバ ID のみ含まれるキー ストアがマシンごとに別個に作成されます。 ただし、信頼キー ストアはマシン間でコピーできるので、信頼ルールの標準化が容易になります。

ID は、多くの場合 nCipher などのハードウェア キー ストアに格納されます。 信頼は証明書だけでプライベート キーがないので、ファイルベースの JDK キー ストアにセキュリティ上の問題なく格納することができます。

デフォルトでは、WebLogic Server はドメイン ディレクトリから wlDefaultKeyStore.jks というプライベート キー キーストアを検索します。信頼性のある CA の証明書用のキーストアは、デモ用の信頼性のある認証局 (WL_HOME¥server¥lib¥cacerts) または JDK の信頼性のある認証局 (...¥jre¥lib¥security¥cacerts) のいずれかを使用できます。

注意: WL_HOME¥server¥lib¥cacerts ファイルは、プロダクション環境用ではなくデモまたはテスト目的で使用してください。このファイルには、¥jre¥lib¥security¥cacerts 内の信頼性のある認証局が入っています。

WebLogic Server は、固有のエイリアスを介してキーストアのすべてのプライベート キー エントリにアクセスします。 エイリアスは、プライベート キーをキーストアにロードするときに指定します。

信頼性のある認証局は、エイリアスによって WebLogic Server に対して個々に識別されません。WebLogic Server によって信頼性があると識別されたキーストア内の認証局はすべて信頼されます。WebLogic Server は信頼性のある CA の証明書にアクセスする場合にエイリアスを使用しませんが、キーストアでは、信頼性のある CA の証明書をロードするときにエイリアスが必要です。

エイリアスの大文字/小文字は区別されません。このため、Hugo hugo は同じキーストア エントリを指します。プライベート キーのエイリアスは、SSL をコンフィグレーションするときに [サーバ プライベート キーのエイリアス] 属性で指定します。

よく使う Keytool のコマンド

表 6-2 では、WebLogic Server で JKS キーストアを作成および使用する場合の keytool のコマンドについて説明します。

注意: keytool ユーティリティは Sun Microsytems の製品です。したがって、BEA Systems ではこのユーティリティに関する詳細なマニュアルを提供していません。詳細については、『keytool - Key and Certificate Management Tool』を参照してください。

表6-2 よく使われる Keytool のコマンド

コマンド

説明

keytool -genkey -keystore keystorename -storepass keystorepassword

キーストアを作成する。

keytool -alias aliasforprivatkey -import -file privatekeyfile.pem -keypass privatekeypassword -keystore keystorename -storepass keystorepassword

プライベート キーをキーストアにロードする。

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

信頼性のある CA の証明書をキーストアにロードする。

keytool -list -keystore keystorename

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

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

指定したエイリアスに対応するプライベート キーをキーストアから削除する。

keytool -help

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


 

WebLogic Server キーストア プロバイダがキーストアを指し示すようにコンフィグレーションする

WebLogic キーストア プロバイダを使用する場合、プライベート キーのパスワードを含む config.xml ファイルはハッシュ化されます。これによって、プライベート キーと信頼性のある CA の証明書をファイルに格納するときには得られないセキュリティが実現されます。

WebLogic キーストア プロバイダのコンフィグレーションは任意です。プライベート キーとデジタル証明書をファイルに格納する場合、WebLogic キーストア プロバイダをコンフィグレーションする必要はありません。JKS キーストアは、WebLogic キーストア プロバイダを使用しなくても利用できます。詳細については、JKS キーストアの使い方を参照してください。

WebLogic キーストア プロバイダをコンフィグレーションするには、キーストアを作成し、WebLogic Server Administration Console で WebLogic キーストア プロバイダがそのキーストアを指し示すように属性を設定する必要があります。

注意: WebLogic キーストア プロバイダは、ドメイン単位でコンフィグレーションします。しかし、キーストアはマシン単位でコンフィグレーションします。同じマシン上で複数のセキュリティ レルムまたは複数のサーバが動作している場合、それらはすべて同じキーストアを使用できます。

WebLogic キーストア プロバイダをコンフィグレーションするには、次の手順に従います。

  1. キーストアを作成します。詳細については、キーストアを作成してプライベート キーと信頼性のある認証局をそのキーストアにロードするを参照してください。

  2. WebLogic Server Administration Console で [セキュリティ|レルム] ノードを展開します。

  3. コンフィグレーションするレルムの名前 (myrealm など) をクリックします。

  4. [プロバイダ] ノードを展開します。

  5. [キー ストア] をクリックします。

    [キー ストア] タブが表示されます。このタブには、このセキュリティ レルムにコンフィグレーションされているキーストアの名前が表示されます。デフォルトでは、WebLogic キーストア プロバイダがコンフィグレーションされます。

    注意: WebLogic Server Administration Console は、WebLogic キーストア プロバイダを DefaultKeystore として参照します。

  6. [DefaultKeystore] をクリックします。

  7. [一般] タブの [プライベート キー ストアの場所] 属性に、キーストアのディレクトリ位置を入力します。デフォルトは wlDefaultKeyStore.jks です。

    この属性には、ディレクトリとファイルの場所を、絶対パスまたはサーバのルート ディレクトリ (つまりドメイン ディレクトリ) を基準にした相対パスで指定する必要があります。

警告: サポートされているすべてのオペレーティング システムで、キーストアはドメイン内のすべてのサーバに対して同じ場所でなければなりません。同じ場所にないと、WebLogic Server はキーストアを見つけられません。

  1. [ルート CA キー ストアの場所] 属性に、信頼性のある CA の証明書が格納されるキーストアのディレクトリ位置を入力します。

    この属性には、ディレクトリとファイルの場所を、絶対パスまたはサーバのルート ディレクトリ (つまりドメイン ディレクトリ) を基準にした相対パスで指定する必要があります。この手順は、プライベート キーと信頼性のある CA の証明書が同じキーストアに格納される場合は必要ありません。

    サーバが信頼する認証局を格納するキーストアの場所を -Dweblogic.security.SSL.trustedCAKeyStore コマンドライン引数を使用して指定する場合は、[ルート CA キー ストアの場所] 属性は空白にしておきます。

  2. [プライベート キー ストアの Pass Phrase] 属性に、信頼性のある CA に作成したときに指定したパスワードを入力します。

  3. [適用] をクリックして変更を保存します。

  4. WebLogic Server を再起動します。

 


JKS キーストアの使い方

WebLogic キーストア プロバイダを使用して信頼性のある CA の証明書とプライベート キーを格納しない場合、WebLogic Server の起動時に JKS キーストアの場所をコマンド ライン引数として指定できます。

-Dweblogic.security.SSL.trustedCAKeyStore コマンド ライン引数を使用して、サーバまたはクライアントが信頼する認証局が格納されているキーストアの保存場所を指定します。パスの値は、サーバが起動するディレクトリを基準とする相対パスまたは絶対パスでなければなりません。

Weblogic Server は、次の順序で信頼性のある認証局を検索します。

 


SSL ポートの有効化

この手順では、個々のサーバと SSL クライアントの間で明示的に SSL を使用するよう指定する方法を説明します。WebLogic Server は内部で SSL を使用して、管理サーバ、管理対象サーバ、およびノード マネージャ間、WebLogic Server と LDAP 認証プロバイダが使用する LDAP サーバ間、WebLogic Server と SSL クライアント コード間、および管理ポートを介した通信を保護します。

SSL ポートを有効にするには、次の手順を実行します。

  1. [サーバ] ノードを展開します。

  2. [接続|SSL ポート] タブを選択して以下の属性を設定します。

    • [有効化] 属性を選択すると、SSL が有効化されます。

    • [SSL リスン ポート] 属性は、WebLogic Server が SSL 接続をリスンする専用ポートの番号です。 デフォルトでは 7002。

  3. [適用] をクリックして変更を保存します。

  4. 一方向または双方向 SSL の属性を設定します。詳細については、一方向 SSL の属性の設定または双方向 SSL の属性の設定を参照してください。

  5. WebLogic Server を再起動します。

 


一方向 SSL の属性の設定

一方向 SSL の属性を定義するには、次の手順に従います。

  1. SSL ポートを有効にします。詳細については、SSL ポートの有効化を参照してください。

  2. [接続|SSL] タブを選択し、表 6-3 に示す属性を設定します。

    表6-3 SSL 属性

    SSL 属性

    説明

    [サーバ プライベート キーのエイリアス]

    WebLogic Server のプライベート キーをキーストアにロードするときに指定されるエイリアス。この属性は、WebLogic Server のプライベート キーをキーストアに格納した場合にのみ定義する。この属性を使用するには、WebLogic キーストア プロバイダをコンフィグレーションしておく必要がある。

    すべてのプライベート キー キーストア エントリには、固有のエイリアスを介してアクセスできる。 エイリアスは、プライベート キーをキーストアにロードするときに指定する。エイリアスの大文字/小文字は区別されない。このため、Hugo hugo は同じキーストア エントリを指す。

    [サーバ プライベート キーの Pass Phrase]

    WebLogic Server のプライベート キーをキーストアにロードするときに指定されるパスワード。この属性は、WebLogic Server のプライベート キーをキーストアに格納した場合にのみ定義する。この属性を使用するには、WebLogic キーストア プロバイダをコンフィグレーションしておく必要がある。

    [サーバ証明書ファイル名]

    WebLogic Server 用のデジタル証明書のディレクトリ パスと名前。

    2 つの証明書以上の深さの証明書チェーンを使用する場合、チェーン全体を PEM フォーマットで証明書ファイルに含める必要がある。

    [サーバ キー ファイル名]

    WebLogic Server 用のプライベート キーのディレクトリ パスと名前。この属性は、WebLogic Server のプライベート キーをキーストアに格納した場合にのみ指定する。

    プライベート キー ファイルをパスワードで保護している場合、サーバの起動時に weblogic.management.pkpassword コマンドライン引数を指定する。

    [信頼性のある CA ファイル名]

    PEM エンコードされた信頼性のある認証局の証明書を格納したファイルの名前。


     

  3. [適用] をクリックして変更を保存します。

  4. WebLogic Server を再起動します。

 


双方向 SSL の属性の設定

双方向 SSL では、SSL 接続を確立するためにクライアントは WebLogic Server にデジタル証明書を提示する必要があります。最初にクライアントがサーバのデジタル証明書を認証し、次にサーバがクライアントのデジタル証明書を認証します。

双方向 SSL を使用する前に、SSL クライアントとサーバには ID が必要です。また、クライアントとサーバは互いの証明書の発行元を信頼している必要があります。

双方向 SSL の属性を定義するには、次の手順に従います。

  1. SSL を有効化します。

  2. [接続|SSL] タブを選択し、一方向 SSL の属性の設定 に示した一方向 SSL の属性を設定します。

  3. [SSL] タブで、以下の双方向 SSL 属性のいずれかを有効にします。

    • [クライアント証明書を強制] 属性をチェックして、クライアントからの証明書の提示を強制します。有効かつ信頼性のある証明書チェーンが提示されない場合は SSL 接続が終了します。

    • [クライアント証明書を要求 (強制しない)] 属性をチェックして、クライアントからの証明書の提示を要求します。この属性を有効にした場合、クライアントが証明書を提示しなくても接続は継続します。

  4. [適用] をクリックします。

  5. WebLogic Server を再起動します。

 


SSL のコマンドライン引数

ファイル内のプライベート キーを WebLogic Server で使用するには、次のコマンド ライン引数を使用します。

-Dweblogic.management.pkpassword=pkpassword

password は、プライベート キーのパスワードです。

注意: パスワードはクリア テキストで扱われるので、このコマンドライン引数を使用する際にはセキュリティ上のリスクがあります。

WebLogic キーストア プロバイダの [ルート CA キー ストアの場所] 属性に指定されているキーストア以外の信頼性のある CA キーストアを指定するには、次のコマンド ライン引数を使用します。

-Dweblogic.security.SSL.trustedCAkeystore=path

パスの値は、サーバの起動ディレクトリを基準とした JKS キーストア ファイルの相対パス名または絶対パス名でなければなりません。このコマンドライン引数は、WebLogic Server Administration Console で指定された情報をオーバライドします。WebLogic Server が信頼を取得する方法の詳細については、JKS キーストアの使い方を参照してください。

Basic Constraints が含まれた証明書の検証を WebLogic Server で制御するには、次のコマンド ライン引数を使用します。

-Dweblogic.security.SSL.enforceConstraints=option

デフォルトは strong です。 詳細については、SSL 証明書検証を参照してください。

注意: weblogic.security.SSL.sessionCache.size および weblogic.security.SSL.sessionCache.ttl コマンドライン引数は、このリリースの WebLogic Server ではサポートされていません。詳細については、SSL セッションの動作を参照してください。

 


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 の問題をトラッキングする場合は、ログ ファイルの情報を調べて以下の点を確認します。

注意: 重大度 1 タイプ 0 は正常なクローズ ALERT であり、問題ではありません。

 


SSL セッションの動作

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

デフォルトでは、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 では、実行スレッド内でキャッシュされる SSL セッションが 1 つ存在します。このリリースの WebLogic Server では、セッション キャッシングはスレッドによって共有可能な SSL コンテキストによって維持されます。1 つのスレッドは 1 つの SSL セッションではなくセッション キャッシュ全体にアクセスできるので、複数の SSL セッションを 1 つ (または複数の) スレッドで使用および共有できます。

 


ホスト名検証の使い方

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

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

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

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

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

カスタム ホスト名検証を使用するには、次の手順に従います。

  1. [サーバ] ノードを展開します。

  2. [SSL] タブの [ホスト名の検証] 属性に、カスタム ホスト名検証をロードするために使用する Java クラスの名前を入力します。

  3. [適用] をクリックします。

  4. WebLogic Server を再起動します。

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

-D weblogic.security.SSL.hostnameVerifier=classname

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

 


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

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

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

管理サーバに関する SSL の要件

管理対象サーバに関する SSL の要件

ノード マネージャに関する SSL の要件

ID と信頼 : デモとプロダクション環境の違い

ホスト名検証の要件

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

SSL を使用するための管理サーバのコンフィグレーション

SSL を使用するための管理対象サーバのコンフィグレーション

SSL を使用するためのノード マネージャのコンフィグレーション

注意: WebLogic Server では、ID と信頼を格納および指定するためのさまざまな手法を提供していますが、この節では、推奨される使用の例について説明します。

管理サーバに関する SSL の要件

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

注意: デフォルトでは、管理サーバの起動スクリプトは -Dweblogic.security.SSL.trustedCAkeystore コマンドライン引数で信頼を指定するため、WebLogic Server の管理サーバを通じて指定される信頼設定はすべて無視されます。

デフォルトでは、管理サーバは、WL_HOME¥server¥libcacerts ファイル内のすべての認証局を信頼します。

プロダクション環境では、管理サーバはノード マネージャと管理対象サーバの両方の認証局を信頼する、つまり、信頼性のある CA の証明書が管理サーバの信頼性のあるキーストアに入っている必要があります。

  • SSL ポート − デフォルトでは、SSL ポートは管理サーバ上で有効になっています。

  • ホスト名検証 − デフォルトでは、ホスト名検証は管理サーバ上で有効になっていません。 ホスト名検証は、プロダクション環境でのみ必要です。

    ホスト名検証は、管理サーバの起動スクリプトの -Dweblogic.security.SSL.ignoreHostnameVerification コマンドライン引数で指定されます。

  • 管理ポート − 管理ポートを使用するかどうかは、SSL をコンフィグレーションするときに指定できます。管理ポートは、内部で SSL を使用してすべての管理通信を保護します。デフォルトでは、管理ポートは有効になっていません。

    プロダクション環境では管理ポートを使用することをお勧めします。管理ポートを使用する場合、管理サーバとすべての管理対象サーバが管理ポートを使用するようにコンフィグレーションしなければなりません。管理ポートを使用するようコンフィグレーションされていない管理対象サーバは、起動時に管理サーバに接続できません。

  • 管理対象サーバに関する SSL の要件

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

    ノード マネージャに関する SSL の要件

    注意: SSL 使用時にノード マネージャを NT サービスとしては実行しないことをお勧めします。

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

    警告: ホスト名を使用すると、WebLogic Server デプロイメントは介在者の攻撃に対して無防備な状態になる場合があります。

    詳細については、「ノード マネージャ ホスト ファイルの設定」を参照してください。

    ID と信頼 : デモとプロダクション環境の違い

    WebLogic Server では、管理サーバと管理対象サーバ、およびノード マネージャが使用できるデモ用 ID (プライベート キーとデジタル証明書) と信頼 (信頼性のある認証局) が提供されます。

    プロダクション環境では、ノード マネージャ、管理サーバ、および管理対象サーバ用のプライベート キーとデジタル証明書を、Verisign, Inc. や Entrust.net などの有名な認証局から取得してください。 詳細については、プライベート キー、デジタル証明書、信頼性のある認証局の取得を参照してください。

    ホスト名検証の要件

    ホスト名検証を無効にした状態で運用することはデモ用環境では問題ありませんが、プロダクション環境に移行する場合、接続先のホストが目的のホストであることを保証するために、ホスト名検証を使用することをお勧めします。ホスト名検証を使用するには、以下の点についてチェックしてください。

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

    WebLogic Server によって提供されるデモ用 ID と信頼を使用したノード マネージャに対する SSL のコンフィグレーションでは、SSL 属性のデフォルト設定を確認し、管理サーバと管理対象サーバが異なるポートで SSL 通信をリスンしていることを確認します。デモ用 ID と信頼の場合にはデフォルト設定が使用されるので、詳しいコンフィグレーション手順は説明しません。

    図 6-1 に、SSL のデモ用コンフィグレーションを示します。

    図6-1 ノード マネージャに関する SSL のデモ用コンフィグレーション


     

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

    1. コンフィグレーション ウィザードを起動し、新しい WebLogic ドメインを作成します。

      1. [Admin Server with Managed Server(s)] オプションを選択します。

      2. 新しい管理対象サーバをドメインに追加します。管理サーバ上のリスン ポート以外のリスン ポートを管理対象サーバ用に指定します。管理対象サーバの [リスン アドレス] を localhost に設定します。

      詳細については、『WebLogic Server ドメイン管理』を参照してください。

    2. 管理サーバを起動します。管理ポートは有効にしないでください。

    3. 管理対象サーバ用のマシンを作成します。[リスン アドレス] を localhost に設定します。管理対象サーバをマシンに追加します。詳細については、「マシンのコンフィグレーション」を参照してください。

    4. 管理サーバで SSL が有効になっていることを確認します。管理ポートは有効になっていないので、SSL を有効にする必要があります。SSL を有効にしないと、管理サーバはノード マネージャと通信できません。

      [接続|SSL ポート] タブをクリックし、[有効化] 属性がチェックされていることを確認します。詳細については、SSL ポートの有効化を参照してください。

    5. [接続|SSL] タブで、管理サーバに対する SSL 属性が以下のように設定されていることを確認します。

      • [サーバ キー ファイル名] − demokey.pem

      • [サーバ証明書ファイル名] − democert.pem

      • ホスト名検証 − 無効

      詳細については、一方向 SSL の属性の設定を参照してください。

    6. 管理サーバの起動スクリプトで、信頼が WL_HOME¥server¥lib¥cacerts として設定されていることを確認します。

    7. 管理対象サーバで SSL が有効になっていることを確認します。SSL ポートには、管理サーバが使用する SSL ポート以外のポートが指定されていることを確認します。

      [接続|SSL ポート] タブをクリックし、[有効化] 属性がチェックされていることを確認します。詳細については、SSL ポートの有効化を参照してください。

    8. [接続|SSL] タブで、管理対象サーバに対する SSL 属性を以下のように設定します。

      • [サーバ キー ファイル名] − 管理対象サーバが動作するドメインのデモ用プライベート キー (.../demokey.pem) の絶対パス名

      • [サーバ証明書ファイル名] − 管理対象サーバが動作するドメインのデモ用デジタル証明書 (.../democert.pem) の絶対パス名

      • ホスト名検証 − 無効

      詳細については、一方向 SSL の属性の設定を参照してください。

    9. [サーバ|コンフィグレーション|リモート スタート] タブで管理対象サーバの起動コマンドライン引数をコンフィグレーションします。

      • [ユーザ名] (必須) − この管理対象サーバを起動する特権を持つユーザの名前 (weblogic など) を入力します。

      • [パスワード] (必須) − [変更...] をクリックして、サーバを起動するためのパスワードを変更します (weblogic など)。新しいパスワードを [新しいパスワード] および [再入力] テキスト ボックスに入力し、[適用] をクリックして変更を適用します。

    10. 管理サーバを停止します。

    11. 管理サーバを起動します。

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

    図 6-2 に、プロダクション環境用 SSL コンフィグレーションを示します。

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


     

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

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

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

    1. コンフィグレーション ウィザードを起動し、新しい WebLogic ドメインを作成します。

    2. 管理サーバを起動します。

    3. WebLogic ドメインの管理ポートをコンフィグレーションします。

    4. すべての管理対象サーバ用のマシンを作成します。 [リスン アドレス] を管理対象サーバが動作するマシンのホスト名に設定します。管理対象サーバをマシンに追加します。詳細については、「マシンのコンフィグレーション」を参照してください。

    5. 管理サーバ用の SSL を無効にします。管理ポートが有効になっているので、ノード マネージャはこのポートをすべての管理トラフィック用に使用します。管理ポートは SSL を使用してすべての通信を保護するので、SSL ポートを有効にしておく必要はありません。 SSL ポートを介してアプリケーション トラフィックを実行する場合にのみ、SSL ポートを有効にしておきます。

    6. 管理サーバ用の ID をコンフィグレーションします。

    7. 管理サーバのホスト名検証を無効にします。

    8. 管理サーバの信頼性のある認証局を指定します。

    9. すべての管理対象サーバの管理ポートを有効にします。

    10. 管理対象サーバ用の SSL を無効にします。

    11. リモート起動引数を使用して ID、信頼をコンフィグレーションし、すべての管理対象サーバのホスト名検証を有効化します。

    12. ノード マネージャの nodemanager.hosts ファイルを編集します。 ノード マネージャの通信先となる管理サーバが動作するマシンの名前を入力します。 IP アドレスではなくホスト名でマシンを指定する場合は、DNS の逆引き参照を有効にします。

    13. ノード マネージャの起動スクリプトを編集します。ノード マネージャの ID と信頼の場所を指定し、ホスト名検証を有効にします。

    14. ノード マネージャを起動します。

    15. 管理サーバを停止します。

    16. 管理サーバを起動します。

    SSL を使用するための管理サーバのコンフィグレーション

    デフォルトでは、管理サーバの ID と信頼は、コンフィグレーション ウィザードによって提供されるデモ用デジタル証明書とプライベート キーを使用してコンフィグレーションされます。また、SSL はデフォルトでコンフィグレーションされます。 詳細については、ノード マネージャのデモ用 SSL コンフィグレーション : 主な手順を参照してください。この節では、管理ポートとプロダクション レベルの ID および信頼を使用して、SSL を使用するよう管理サーバをコンフィグレーションする方法について説明します。

    SSL を使用するよう管理サーバをコンフィグレーションするには、次の手順に従います。

    1. 管理サーバ用の ID と信頼を取得します。管理サーバのデジタル証明書にホスト名が含まれていることを確認してください。

      詳細については、プライベート キー、デジタル証明書、信頼性のある認証局の取得を参照してください。

    2. コンフィグレーション ウィザードを起動し、新しい WebLogic ドメインを作成します。

      1. [Admin Server with Managed Server(s)] オプションを選択します。

      2. 管理対象サーバをドメインに追加します。管理サーバ上のリスン ポート以外のリスン ポートを管理対象サーバ用に指定します。[リスン アドレス] を管理対象サーバが動作するマシンのホスト名に設定します。

      詳細については、『WebLogic Server ドメイン管理』を参照してください。

    3. 管理サーバを起動します。

    4. WebLogic Server ドメインの管理ポートを有効にします。詳細については、「ドメイン全体の管理ポートのコンフィグレーション」を参照してください。

    5. WebLogic Server Administration Console の [接続|SSL ポート] タブの [有効化] 属性のチェックをはずして、SSL を無効にします。

    6. WebLogic Server Administration Console の [接続|SSL] タブの [SSL] 属性上の [サーバの証明書ファイル名] 属性でデジタル証明書の場所を指定します。

    7. JKS キーストアを作成し、そのキーストア内に管理サーバのプライベート キーを格納します。詳細については、よく使う Keytool のコマンドを参照してください。

    8. Configure the WebLogic Keystore provider to access the JKS keystore. 詳細については、WebLogic Server キーストア プロバイダがキーストアを指し示すようにコンフィグレーションするを参照してください。

    9. 管理サーバが信頼している認証局用の JKS キーストアを作成します。 信頼性のある CA 証明書を JKS キーストアにロードします。 詳細については、よく使う Keytool のコマンドを参照してください。

    10. 管理サーバの起動スクリプトを編集します。

      • -Dweblogic.security.SSL.trustedCAkeystore=path_to_keystore コマンドライン引数を使用して、管理サーバ用の信頼性のある認証局が格納されている JKS キーストアの場所を指定します。

      • -weblogic.security.SSL.ignoreHostnameVerification=false コマンドライン引数を使用して、ホスト名検証を有効にします。

    11. 管理対象サーバをコンフィグレーションします。 SSL を使用するための管理対象サーバのコンフィグレーションを参照してください。

    12. ノード マネージャをコンフィグレーションします。 SSL を使用するためのノード マネージャのコンフィグレーションを参照してください。

    13. ノード マネージャを起動します。

    14. 管理サーバを停止します。

    15. 管理サーバを起動します。

    SSL を使用するための管理対象サーバのコンフィグレーション

    デフォルトでは、管理対象サーバには ID がコンフィグレーションされていません。コンフィグレーション ウィザードによって提供されるデモ用プライベート キーとデジタル証明書を使用すると、管理対象サーバの ID を確立できますが、このプライベート キーとデジタル証明書はプロダクション環境で使用しないでください。また、管理対象サーバは、WL_HOME¥server¥lib ディレクトリの cacerts ファイル内のすべての認証局をデフォルトで信頼します。 詳細については、ノード マネージャのデモ用 SSL コンフィグレーション : 主な手順を参照してください。

    この節では、管理ポートとプロダクション レベルの ID および信頼を使用して、SSL を使用するよう管理対象サーバをコンフィグレーションする方法について説明します。

    SSL を使用するよう管理対象サーバをコンフィグレーションするには、次の手順に従います。

    1. 管理対象サーバ用の ID と信頼を取得します。管理対象サーバのデジタル証明書にホスト名が含まれていることを確認してください。

    2. SSL を使用するようドメインの管理サーバをコンフィグレーションします。 詳細については、SSL を使用するための管理サーバのコンフィグレーションを参照してください。

    3. 管理対象サーバの管理ポートをコンフィグレーションします。管理サーバが使用する以外の管理ポートを指定してください。 管理サーバが同じマシン上で管理対象サーバとして動作する場合は、[SSL] タブの [Local Port Override] 属性を設定して管理ポート番号をオーバライドします。

      管理ポートを有効にしたので、管理対象サーバの [リモート スタート] タブのコマンドライン引数を使用して、信頼とホスト名検証を指定する必要があります。

    4. WebLogic Server Administration Console の [接続|SSL] タブの [SSL] 属性上の [サーバの証明書ファイル名] 属性でデジタル証明書の場所を指定します。

    5. JKS キーストアを作成し、そのキーストア内に管理対象サーバのプライベート キーを格納します。詳細については、よく使う Keytool のコマンドを参照してください。

    6. JKS キーストアにアクセスするように WebLogic キーストア プロバイダをコンフィグレーションします。 詳細については、WebLogic Server キーストア プロバイダがキーストアを指し示すようにコンフィグレーションするを参照してください。

    7. 管理対象サーバが信頼している認証局用の JKS キーストアを作成します。 信頼性のある CA 証明書を JKS キーストアにロードします。 詳細については、よく使う Keytool のコマンドを参照してください。

    8. [サーバ|コンフィグレーション|リモート スタート] タブで管理対象サーバの起動コマンドライン引数をコンフィグレーションします。

      • [ユーザ名] (必須) − この管理対象サーバを起動する特権を持つユーザの名前 (weblogic など) を入力します。

      • [パスワード] (必須) − [変更...] をクリックして、サーバを起動するためのパスワードを変更します (weblogic など)。新しいパスワードを [新しいパスワード] および [再入力] テキスト ボックスに入力し、[適用] をクリックして変更を適用します。

      • 信頼 − weblogic.security.SSL.trustedCAKeyStore コマンドライン引数を使用して、管理対象サーバが信頼する認証局を格納しているキーストアを指定します。キーストアの絶対パス名を使用してください。

      • ホスト名検証 − -Dweblogic.security.SSL.ignoreHostnameVerification=false コマンドライン引数を指定して、ホスト名検証を有効にします。

    9. ノード マネージャをコンフィグレーションします。 SSL を使用するためのノード マネージャのコンフィグレーションを参照してください。

    10. ノード マネージャを起動します。

    11. 管理サーバを停止します。

    12. 管理サーバを起動します。

    SSL を使用するためのノード マネージャのコンフィグレーション

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

    1. SSL を使用するようドメインの管理サーバをコンフィグレーションします。 詳細については、SSL を使用するための管理サーバのコンフィグレーションを参照してください。

    2. SSL を使用するようドメインの管理対象サーバをコンフィグレーションします。 詳細については、SSL を使用するための管理対象サーバのコンフィグレーションを参照してください。

    3. ノード マネージャ用の ID と信頼を取得します。 詳細については、プライベート キー、デジタル証明書、信頼性のある認証局の取得を参照してください。

      ノード マネージャはファイルに格納されているデジタル証明書とプライベート キーのみを使用できます。

    4. JKS キーストアを作成し、信頼性のある認証局をキーストアにロードします。 詳細については、よく使う Keytool のコマンドを参照してください。

      双方向 SSL が使用されるので、ノード マネージャも管理サーバと管理対象サーバが使用する認証局を信頼する必要があります。

    5. ノード マネージャはマシンごとに 1 つありますが、ノード マネージャが管理するドメインでは複数のマシンが存在することがあります。ノード マネージャが管理するドメイン内のすべてのマシンで手順 4 および 5 を実行してください。

    6. ノード マネージャの起動スクリプトを編集します。

      起動スクリプトは、WL_HOME¥server¥bin ディレクトリにあります。標準のノード マネージャ起動スクリプトの名前は、Windows システムでは startNodeManager.cmd、UNIX システムでは startNodeManager.sh です。

      次のコマンドライン引数を使用して、ID と信頼を指定します。

      • weblogic.nodemanager.keyFile=filename を使用して、プライベート キー ファイルの場所を指定する。

      • プライベート キー ファイルをパスワードで保護している場合は、weblogic.nodemanager.keyPassword=password を使用してパスワードを指定する。

      • weblogic.nodemanager.certificateFile=filename を使用して、ノード マネージャのデジタル証明書の場所を指定する。

      • weblogic.security.SSL.trustedCAkeystore=keystorename を使用して、信頼性のある JKS キーストアの場所を指定する。

      • weblogic.security.SSL.ignoreHostnameVerification=false を使用して、ホスト名検証を有効にする。

      • weblogic.nodemanager.trustedHosts=pathtofile を使用して、ノード マネージャの nodemanager.hosts ファイルの場所を指定する。

      • [リスン アドレス] プロパティを管理対象サーバが動作するマシンのホスト名に設定します。

      • ReverseDNSEnabled プロパティを IP アドレスではなく管理サーバのホスト名を使用するように設定します。

    7. WL_HOME¥common¥nodemanager¥confignodemanager.hosts ファイルを編集して、ノード マネージャが信頼するマシン上のすべての管理サーバを含めます。 DNS の逆引き参照が使用されている場合、管理サーバは IP アドレスまたはホスト名で指定されます。

      ドメイン内の各マシンの nodemanager.hosts ファイルが更新されていることを確認します。デフォルトでは、nodemanger.hosts ファイルは常に localhost に設定されています。

    8. ノード マネージャを起動します。

    9. 管理サーバを停止します。

    10. 管理サーバを起動します。

     


    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 として定義される Basic Constraint 拡張を備えている必要があります。このため、証明書チェーンのすべての証明書が認証局によって発行されたことが保証されます。デフォルトでは、この条件を満たしていない認証局の証明書は拒否されます。この節では、証明書検証レベルを制御するコマンドライン引数について説明します。

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

    証明書検証レベルの制御

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

    -Dweblogic.security.SSL.enforceConstraints=option

    表 6-4 では、このコマンドライン引数のオプションについて説明します。

    表6-4 -Dweblogic.security.SSL.enforceConstraints のオプション

    オプション

    説明

    strong または true

    CA の証明書の Basic Constraints 拡張が CA として定義されていることをチェックする場合は、このオプションを使用する。

    次に例を示す。

    -Dweblogic.security.SSL.enforceConstraints=strong

    または

    -Dweblogic.security.SSL.enforceConstraints=true

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

    strict

    CA の証明書の Basic Constraints 拡張が CA として定義されていることをチェックし、critical に設定する場合は、このオプションを使用する。このオプションは IETF RFC 2459 標準を強制する。

    次に例を示す。

    -Dweblogic.security.SSL.enforceConstraints=strict

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

    off

    証明書検証を無効にするにはこのオプションを使用する。このオプションは注意して使用すること。たとえば、有名な認証局から購入した CA 証明書が新しい検証に合格しない場合は、このオプションを使用する。ただし、商用ベースの認証局の CA 証明書のほとんどは、デフォルトの strong オプションで機能する。

    次に例を示す。

    -Dweblogic.security.SSL.enforceConstraints=off

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


     

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

    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.3 からダウンロード可能な Java Cryptography Extension (JCE) のアプリケーション プログラミング インタフェース (API) を使用して記述されています。このタイプのプロバイダは、WebLogic セキュリティ サービス プロバイダ インタフェース (SSPI) を使用して記述されたプロバイダとは異なります。WebLogic Server はデフォルトでは JCE プロバイダを提供していません。JDK 1.3 のデフォルト JCE プロバイダ (SunJCE) は、このリリースの WebLogic Server でテストされていません。

    SSL は、Web サーバで使用可能なリソースを保護するための主要コンポーネントです。ただし、SSL トラフィックは重いので、Web サーバのパフォーマンスに影響するボトルネックが発生する可能性があります。ハードウェア アクセラレータは、Web サーバから SSL 処理の負荷を取り除き、サーバがより多くのトランザクションを処理できるようにします。また、ハードウェア アクセラレータは、強力な暗号と暗号化プロセスを提供して、鍵の整合性と機密性を保持します。

    WebLogic Server は、nCipher JCE プロバイダの使用をサポートしています。nCipher JCE プロバイダの詳細については、http://www.ncipher.com/solutions/webservers.html を参照してください。

    1. 製品マニュアルに従って、nCipher JCE プロバイダ用のハードウェアをインストールおよびコンフィグレーションします。

    2. nCipher JCE プロバイダ用のファイルをインストールします。以下のファイルが必要です。

      • JCE 1.2.1 フレームワーク JAR

      • 管轄ポリシー ファイル

      • JCE プロバイダ

      • JAR ファイルに署名した証明書

      注意: この手順は、nCipher JCE プロバイダ用のハードウェアのインストール中に実行済みかもしれません。その場合は、ファイルが正しくインストールされていることを確認してください。

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

      • エクステンションとしてインストールされる。次のいずれかの場所にファイルをコピーします。

        Windows NT

        JAVA_HOME¥lib¥ext

        次に例を示します。

        WL_HOME¥jdk131¥jre¥lib¥ext

        UNIX

        JAVA_HOME/lib/ext

        次に例を示します。

        WL_HOME/jdk131/jre/libext

      • サーバの CLASSPATH にインストールされる。

    3. セキュリティ プロパティ ファイル (java.security) を編集して、WebLogic Server の承認済み JCE プロバイダのリストに nCipher JCE プロバイダを追加します。セキュリティ プロパティ ファイルの場所は次のとおりです。

      Windows NT

      JAVA_HOME¥lib¥security¥java.security

      UNIX

      JAVA_HOME/lib/security/java.security

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

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

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

      n には、特定のプロバイダが要求されていない場合に、要求されたアルゴリズムを検索するプロバイダの順序を決める優先順位を指定します。順序は 1 を基準にしており、1 が最も優先順位が高く、次に 2 が高いというように続きます。

      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

      注意: nCipher JCE プロバイダを正しく動作させるには、JCE プロバイダをこの順序で指定する必要があります。

    4. WebLogic Server を起動します。

    5. nCipher JCE プロバイダが正しく動作するには、nCipher の製品マニュアルに従って、デバッグを有効にする必要があります。

     


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

    WebLogic Server では、SSL V3.0 プロトコルと TLS V1.0 プロトコルの両方をサポートしています。 デフォルトでは、WebLogic Server は SSL V3.0 プロトコルを使用します。 ほとんどの場合、SSL V3.0 プロトコルをそのまま使用できますが、TLS V1.0 プロトコルが必要となる状況 (互換性、SSL のパフォーマンス、およびセキュリティ要件が最大限の環境) もあります。 weblogic.security.SSL.protocolVersion コマンドライン引数により、SSL 接続に使用するプロトコルを指定できます。

    WebLogic Server がクライアントとして動作する場合、WebLogic Server から の SSL V2.0 hello で、SSL ハンドシェークが開始されます。 ピアは SSL V3.0 または TLS V1.0 メッセージで応答する必要があります。それ以外の場合、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 を使用している場合、SSL の ID を指定する方法はありません。 SSL サーバが双方向 SSL 用にコンフィグレーションされている場合は、ID (プライベート キーおよびデジタル証明書または証明書チェーン) が必要です。 したがって、双方向 SSL は、weblogic.Admin 使用時には有効化できません。 weblogic.Admin から SSL サーバへの SSL 接続を確立する前に、SSL サーバが双方向 SSL を使用するようにコンフィグレーションされていないことを確認します。 SSL サーバ上で双方向 SSL が有効になっていると、SSL 接続は失敗します。

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

    1. [サーバ] ノードを展開します。

    2. SSL サーバとして動作するサーバを選択します。

    3. [接続|SSL] タブを選択します。

    4. [クライアント証明書を強制] 属性のチェックがはずされていることを確認します。

    5. [適用] をクリックします。

    6. 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 信頼キーストア以外の信頼キーストアを指定するには、次のコマンドライン引数を使用します。

    -Dweblogic.security.SSL.trustedCAkeystore=pathtokeystore

    pathtokeystore は、信頼性のある CA 証明書を含むキーストア ファイルです。

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

    デフォルトでは、weblogic.Admin はホスト名検証チェックを実行します。 サーバから受け取られたデジタル証明書内の CN フィールドと、サーバへの接続にクライアントが使用した URL 内のサーバ名を比較します。 ホスト名検証チェックに合格するためには、CN フィールドとサーバ名が一致している必要があります。 このチェックは、介在者の攻撃を防ぐために実行されます。

    次のコマンドライン引数を指定することによって、チェックを無効化することが可能です。

    -Dweblogic.security.SSL.ignoreHostnameVerification=true

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

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

    -Dweblogic.security.SSL.hostnameVerifier=classname

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

     


    BEA Tuxedo クライアントおよび WebLogic Server での SSL プロトコルの使用

    BEA Tuxedo クライアントおよび WebLogic Server 間での通信の保護には、SSL プロトコルを使用できます。この節では、次のコード サンプルのクライアントを使い、SSL プロトコルの使用を可能とするために必要な手順を詳細に説明します。

    BEA_HOME/sample/examples/iiop/ejb/stateless/tuxclient

    WebLogic Server と BEA Tuxedo クライアントの間で SSL プロトコルおよび一方向認証を使用するには、次の手順に従います。

    1. 一方向 SSL を使用するよう WebLogic Server をコンフィグレーションします。詳細については、一方向 SSL の属性の設定を参照してください。

    2. WebLogic Server の config.xml ファイル内のサーバ証明書ファイル名属性で、WebLogic Server の証明書を含むファイルの名前を指定します。このファイルにおける証明書の順序は重要です。最初にサーバのデジタル証明書を指定し、次に WebLogic Server の証明書を発行した認証局の証明書、その次に認証局の証明書の発行者を指定します。

    3. WebLogic Server を再起動します。

    4. BEA Tuxedo クライアントの SSL ライセンスを取得します。

    5. BEA Tuxedo の信頼性のある認証局ファイル ($TUXDIR/udataobj/security/certs/trust_ca.cer) に、WebLogic Server の信頼性のある認証局をロードします。

      注意: このファイル内の証明書は、PEM フォーマットでなければなりません。

    6. WebLogic Server を再起動します。

    7. 以下の処理を行うコマンドライン オプションを指定して、BEA Tuxedo クライアントを起動します。

      • SSL プロトコルの使用を有効にする。

      • SSL ネットワーク接続が受け入れられるセキュア ポートを指定する。

      • WebLogic Server が動作しているネットワーク アドレスが、サーバのデジタル証明書内のドメイン名によって指定されているものと同一でない場合に、ピア検証を無効化する。

      次に例を示します。

      ./Client.exe -ORBid BEA_IIOP -ORBpeerValidate warn\ -ORBInitRef NameService=corbalocs:iiop:localhost:7002
      /NameService

     

    Back to Top Previous Next