ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理
12c (12.1.3)
E59414-02
  目次へ移動
目次

前
 
次
 

9 トランスポート・レベル・セキュリティの構成(SSL)

この章では、トランスポートレベルのセキュリティ・プロトコルであるSecure Socket Layer (SSL)の構成方法を説明します。SSLは一方向または双方向のいずれかが可能です。一方向SSLでは、サーバーはクライアントに証明書を提示する必要がありますが、クライアントがサーバーに証明書を提示する必要はありません。双方向SSLでは、サーバーはクライアントに、またクライアントはサーバーに証明書を提示します。SSLを使用するには、ご使用の環境でキーストアおよびトラストストアを設定する必要があります。

SSLの詳細は、『Oracle Web Services Managerの理解』のトランスポート・レベルおよびアプリケーション・レベルのセキュリティの概要に関する項を参照してください。

この章の内容は次のとおりです。

9.1 SSLに関するキーストアの構成

「SSLの構成が必要なOWSMポリシー」または「双方向SSLの構成が必要なポリシー」にあげたポリシーを使用する場合、またはOWSM Policy ManagerとSSLを使用する場合は、SSL用のキーストアを構成する必要があります。

SSLでは、ネットワークを介して接続される2つのアプリケーションが互いのアイデンティティを認証できるようにし、アプリケーション間で交換されるデータを暗号化することで、安全な接続を提供します。

認証によって、クライアントおよび必要に応じてサーバーが、ネットワーク接続の反対側にあるアプリケーションのアイデンティティを検証できます。暗号化によって、ネットワーク上で伝送されるデータを意図した受信者のみが認識できるようになります。クライアント証明書(双方向SSL)は、ユーザーの認証に使用できます。

この項の内容は次のとおりです。

9.1.1 WebLogic ServerへのKSSキーストアの構成方法

『Oracle Platform Security Servicesによるアプリケーションの保護』のキーストア・サービスを使用したキーと証明書の管理に関する項で説明するように、OPSSキーストア・サービスでは、メッセージ・セキュリティのためにキーと証明書を管理するための代替メカニズムが提供されています。OPSSキーストア・サービスを使用して、KSSタイプのキーストアを作成して管理します。

この項では、WebLogic ServerにOPSSキーストア・サービスを構成するために必要な手順の概要を説明します。詳細は、次の2つの資料を参照してください。

  • Oracle WebLogic Server管理コンソール・オンライン・ヘルプ。特にサーバー: 構成: キーストアに関するトピック。

  • 『Oracle WebLogic Serverセキュリティの管理』。特にキーストアの構成に関する項

この項の内容は次のとおりです。

9.1.1.1 デモ・アイデンティティとデモ信頼に関するOPSSキーストア・サービスの構成

KSSデモ・アイデンティティ・キーストアとデモ信頼キーストアはドメインの作成時に事前構成されます。これらのキーストアの追加の構成は必要ありません。

デモ・アイデンティティとデモ信頼のためのOPSSキーストア・サービスを構成するには次の手順を実行します。

  1. WebLogic Server管理コンソールで、「ドメイン」→「セキュリティ」→「詳細」ページに移動し、「デモへのKSSの使用」チェック・ボックスが有効になっていることを確認します。

  2. キーストアの構成に関する項の説明に従って、デモ・アイデンティティおよびデモ信頼を使用するようにWebLogic Serverインスタンス構成します。

  3. 「WebLogic ServerへのSSLの構成(一方向)」および「WebLogic ServerへのSSLの構成(双方向)」の説明に従ってWebLogic ServerインスタンスのSSLを構成します。

    WebLogic Server DefaultHostnameVerifierが非標準のDemoCertFor_<WLS Domain Name>ホスト名形式を受け入れるように変更されていることを確認してください。他のホスト名ベリファイアはこの形式をサポートしていない場合があります。

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

9.1.1.2 デモ・アイデンティティとデモ信頼に関するOPSSキーストア・サービスの再作成

KSSデモ・アイデンティティ・キーストアはドメインの作成時に事前構成されます。このキーストアの追加の構成は必要ありません。

ただし、その後KSSデモ・アイデンティティ・キーストアを変更または削除した場合は、この項の説明に従ってキーストアを再作成してください。

Fusion Middleware Controlまたはキーストア・サービス・コマンドのいずれかとWLSTを使用して、OPSSキーストア・サービス操作を実行できます。ここでは、Fusion Middleware Controlの手順について説明していますが、「キーストア・サービスを使用したキーと証明書の管理」では、両方の方法について説明しています。

デモ・アイデンティティとデモ信頼のためのOPSSキーストア・サービスを構成するには次の手順を実行します。

  1. Fusion Middleware Controlを起動します。

  2. 「WebLogicドメイン」メニューから、「セキュリティ」「キー・ストア」の順に選択します。

  3. systemストライプ内にdemoidentityという名前のキーストアを作成します。(詳細は、「Fusion Middleware Controlでのキーストアの作成」を参照。)

    1. systemストライプを選択し、「キーストアの作成」をクリックします。

      図9-1に、「キーストアの作成」ページを示します。

      図9-1 キーストアの作成

      図9-1の説明が続きます
      「図9-1 キーストアの作成」の説明

    2. このキーストアにdemoidentityという名前を付けます。

    3. 保護タイプを「パスワード」に設定します。

    4. パスワードをDemoIdentityKeyStorePassPhraseに設定して確認します。

    5. 「権限の付与」チェック・ボックスの選択を解除します。

    6. コード・ベースURLを指定しないでください。

  4. 先に作成したdemoidentityキーストアを選択し、「管理」をクリックします。

    DemoIdentityKeyStorePassPhraseのパスワードを入力します。

    図9-2に、「証明書の管理」画面を示します。

    図9-2 証明書の管理

    図9-2の説明が続きます
    「図9-2 証明書の管理」の説明

  5. 「鍵ペアの生成」をクリックして、秘密鍵/公開鍵のペアを生成します。

    図9-3に、「鍵ペアの生成」画面を示します。

    図9-3 「鍵ペアの生成」

    図9-3の説明が続きます
    「図9-3 「鍵ペアの生成」」の説明

    1. 鍵ペアの別名としてDemoIdentityを指定します。

    2. DemoCertFor_<WLS Domain Name>として共通名を指定します。ここで、DemoCertFor_は必須定数で、<WLS Domain Name>はWebLogic Serverドメイン名です。例: DemoCertFor_base_domain


      注意:

      WebLogic Serverドメインのセキュリティ構成で「デモへのKSSの使用」フラグを設定した場合、WebLogic Server DefaultHostnameVerifierはこの非標準のホスト名形式を受け入れるように変更されています。他のホスト名ベリファイアはこの形式をサポートしていない場合があります。

    3. 必要に応じて、他のサイト固有の情報を指定します。

    4. 環境に適合する場合、デフォルトのRSAキー・サイズを受け入れることができます。Oracleでは、鍵の長さは1024ビット以上である必要があります。

    5. パスワードをDemoIdentityPassPhraseとして指定します。

    6. 「OK」をクリックします。

  6. WebLogic Server管理コンソールで、「ドメイン」→「セキュリティ」→「詳細」ページに移動して、「デモへのKSSの使用」チェック・ボックスを選択します。

  7. キーストアの構成に関する項の説明に従って、デモ・アイデンティティおよびデモ信頼を使用するようにWebLogic Serverインスタンス構成します。

  8. 「WebLogic ServerへのSSLの構成(一方向)」および「WebLogic ServerへのSSLの構成(双方向)」の説明に従ってWebLogic ServerインスタンスのSSLを構成します。

    WebLogic Server DefaultHostnameVerifierが非標準のDemoCertFor_<WLS Domain Name>ホスト名形式を受け入れるように変更されていることを確認してください。他のホスト名ベリファイアはこの形式をサポートしていない場合があります。

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

9.1.1.3 カスタム・アイデンティティおよび信頼に関するOPSSキーストア・サービスの構成

WebLogic Serverでカスタム・アイデンティティおよび信頼にOPSSキーストア・サービスを使用するには、その前にこのサービスを構成する必要があります。

Fusion Middleware Controlまたはキーストア・サービス・コマンドのいずれかとWLSTを使用して、OPSSキーストア・サービス操作を実行できます。ここでは、Fusion Middleware Controlの手順について説明していますが、「キーストア・サービスを使用したキーと証明書の管理」では、両方の方法について説明しています。

カスタム・アイデンティティおよび信頼のためにOPSSキーストア・サービスを構成するには、次の手順を実行します。

  1. Fusion Middleware Controlを起動します。

  2. 「WebLogicドメイン」メニューから、「セキュリティ」「キー・ストア」の順に選択します。

  3. systemストライプ内にキーストアを作成します。(詳細は、「Fusion Middleware Controlでのキーストアの作成」を参照。)

    1. systemストライプを選択し、「キーストアの作成」をクリックします。

      図9-4に、「キーストアの作成」ページを示します。

      図9-4 キーストアの作成

      図9-4の説明が続きます
      「図9-4 キーストアの作成」の説明

    2. このキーストアに名前を付けます。

    3. 保護タイプを「パスワード」に設定します。

    4. パスワードを設定します。

    5. 「権限の付与」チェック・ボックスの選択を解除します。

    6. コード・ベースURLを指定しないでください。

  4. 先に作成したキーストアを選択し、「管理」をクリックします。

    パスワードを入力します。

    図9-5に、「証明書の管理」画面を示します。

    図9-5 証明書の管理

    図9-5の説明が続きます
    「図9-5 証明書の管理」の説明

  5. 「鍵ペアの生成」をクリックして、秘密鍵/公開鍵のペアを生成します。

    図9-6に、「鍵ペアの生成」画面を示します。

    図9-6 「鍵ペアの生成」

    図9-6の説明が続きます
    「図9-6 「鍵ペアの生成」」の説明

    1. キー・ペアの別名を指定します。

    2. 必要に応じて、サイト固有の情報を指定します。

    3. 環境に適合する場合、デフォルトのRSAキー・サイズを受け入れることができます。Oracleでは、鍵の長さは1024ビット以上である必要があります。

    4. パスワードを指定します。

    5. 「OK」をクリックします。

  6. このKSSデモのCA署名付き鍵ペアをそのまま使用するか、Entrust社やVeriSign社などの信頼できるベンダーからの署名証明書を取得するオプションがあります。

    信頼できるベンダーから署名証明書を取得するには、鍵ペアの別名を選択して、「CSRの生成」をクリックします。CSRを作成した後で、それをCAに送信します。CAは、証明書リクエストを認証し、リクエストに基づいてデジタル証明書を作成します。

    CA署名付き証明書のインポート方法の詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のFusion Middleware Controlを使用した証明書のインポートに関する項を参照してください。

  7. 事前構成済OPSSキーストア・サービス信頼ストアkss://system/trustを使用しない場合は、独自に作成する必要があります。


    注意:

    OPSSキーストア・サービス信頼ストアは信頼構成を簡素化するため、これを使用することをお薦めします。

    独自の信頼ストアを作成するには、別のOPSSキーストア・サービス・キーストアを作成して、信頼できる証明書をインポートします。信頼できる証明書のインポート方法の詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のFusion Middleware Controlを使用した証明書のインポートに関する項を参照してください。

  8. キーストアの構成に関する項の説明に従って、カスタム・アイデンティティおよび信頼にKSSを使用するようにWebLogic Serverインスタンス構成します。kss://system/keystore-nameという形式のURIとしてキーストアに完全修飾パスを指定します。キーストアのタイプはKSSです。

  9. 「WebLogic ServerへのSSLの構成(一方向)」および「WebLogic ServerへのSSLの構成(双方向)」の説明に従ってWebLogic ServerインスタンスのSSLを構成します。

サーバーのSSL属性はすべて動的です。コンソールを通じて変更すると、対応するSSLサーバーまたはチャネルSSLサーバーが再起動され、新しい接続に対して新しい設定を使用します。古い接続については、引き続き古い構成で実行されます。すべてのSSL接続を指定した構成に従うようにするには、WebLogic Serverを再起動する必要があります。

9.1.2 WebLogic ServerへのJKSキーストアの構成方法

「WebLogic ServerへのKSSキーストアの構成方法」の説明に従ってKSSキーストア・サービスを使用することが、キーストアを構成する最も便利な方法である場合もあります。ただし、WebLogicデフォルトのアイデンティティ・キーストアDemoIdentity.jksとデフォルトの信頼キーストアDemoTrust.jksを含むJKSキーストアを使用するオプションもあります。

この項では、WebLogic ServerでJKSキーストアを構成するために必要な手順の概要を説明します。詳細は、次の2つの資料を参照してください。

  • Oracle WebLogic Server管理コンソール・オンライン・ヘルプ。特にサーバー: 構成: キーストアに関するトピック。

  • 『Oracle WebLogic Serverセキュリティの管理』。特にキーストアの構成に関する項

WebLogic Serverには、デフォルトのアイデンティティ・キーストアDemoIdentity.jksとデフォルトの信頼キーストアDemoTrust.jksが構成されています。さらに、WebLogic Serverでは、JDKのcacertsファイル内の認証局を信頼しています。このデフォルトのキーストア構成は、テストや開発を目的とする場合に適しています。ただし、これらのキーストアは本番環境では使用しないでください。

サーバーのアイデンティティと信頼を構成する手順は次のとおりです。

  1. keytoolユーティリティまたはEntrust社やVerisign社のような信頼できるベンダーから信頼できる証明書を取得し、キーストアに含めます。

    証明書を取得するには、証明書リクエストを作成してCAに送信する必要があります。CAは、証明書リクエストを認証し、リクエストに基づいてデジタル証明書を作成します。

    秘密鍵、デジタル証明書および信頼できる認証局(CA)には、Privacy Enhanced Mail (PEM)形式を使用することをお薦めします。

    keytoolユーティリティを使用する場合、デフォルトの鍵のペア生成アルゴリズムはDigital Signature Algorithm (DSA)です。WebLogic ServerではDSAはサポートされていません。WebLogic Serverを使用する場合は、RSAなど、別の鍵のペア生成および署名アルゴリズムを指定してください。keytoolユーティリティの詳細は、keytool - キーおよび証明書管理ツール(http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html)を参照してください。

    WebLogic Serverキットで提供されるデジタル証明書、秘密鍵および信頼できるCA証明書も使用できます。デモ用のデジタル証明書、秘密鍵および信頼できるCA証明書は、開発環境でのみ使用してください。

  2. アイデンティティ用に1つと信頼用に1つ、キーストアを作成します。キーストア形式にはJavaキーストア(JKS)を使用することをお薦めします。

  3. 秘密鍵と信頼できるCAをキーストアにロードします。

  4. コンソールの左側のペインで、「環境」を開き、「サーバー」を選択します。

  5. アイデンティティと信頼キーストアを構成するサーバーの名前をクリックします。

  6. 「構成」「キーストア」を選択します。

  7. 「キーストア」フィールドで、秘密鍵/デジタル証明書のペアおよび信頼できるCA証明書を格納および管理する方法を選択します。選択できるオプションは次のとおりです。

    • カスタム・アイデンティティとカスタム信頼: ユーザーが作成するアイデンティティと信頼キーストア。

    • デモ・アイデンティティとデモ信頼: デモ・アイデンティティとデモ信頼のキーストア(それぞれDOMAIN_HOME\securityおよびWL_HOME\server\libディレクトリにあります)、およびJDK cacertsキーストアがデフォルトで構成されます。開発目的にのみ使用してください。

    • カスタム・アイデンティティとJava標準信頼: ユーザーが作成するキーストアと、JAVA_HOME\jre\lib\securityディレクトリのcacertsファイルに定義されている信頼できるCA。

    • カスタム・アイデンティティとコマンド行信頼: ユーザーが作成するアイデンティティ・キーストアと、信頼キーストアの場所を指定するコマンド行引数。

  8. 「ID」セクションで、アイデンティティ・キーストアの属性を定義します。

    • カスタム・アイデンティティ・キーストア: アイデンティティ・キーストアへの完全修飾パス。

    • カスタム・アイデンティティ・キーストアのタイプ: キーストアのタイプ。一般に、この属性にはJavaキーストア(JKS)を指定します。空白のままにすると、デフォルトでJKSに設定されます。

    • カスタム・アイデンティティ・キーストアのパスフレーズ: キーストアの読取りまたは書込み時に入力するパスワード。この属性は、キーストアのタイプに応じてオプションまたは必須になります。すべてのキーストアでは、キーストアへの書込みにパスフレーズが必要です。ただし、一部のキーストアでは、キーストアからの読取りにパスフレーズは不要です。WebLogic Serverは、キーストアからの読取りのみを行うため、このプロパティを定義するかどうかは、キーストアの要件に応じて決まります。


      注意:

      デモ・アイデンティティ・キーストアのパスフレーズは、DemoIdentityKeyStorePassPhraseです。

  9. 「信頼」セクションで、信頼キーストアのプロパティを定義します。

    キーストアとして「Java標準信頼キーストア」を選択する場合、キーストアの作成時に定義したパスワードを指定します。パスワードを確認します。

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

    • カスタム信頼キーストア: 信頼キーストアへの完全修飾パス。

    • カスタム信頼キーストアのタイプ: キーストアのタイプ。一般に、この属性にはJKSを指定します。空白のままにすると、デフォルトでJKSに設定されます。

    • カスタム信頼キーストアのパスフレーズ: キーストアの読取りまたは書込み時に入力するパスワード。この属性は、キーストアのタイプに応じてオプションまたは必須になります。すべてのキーストアでは、キーストアへの書込みにパスフレーズが必要です。ただし、一部のキーストアでは、キーストアからの読取りにパスフレーズは不要です。WebLogic Serverは、キーストアからの読取りのみを行うため、このプロパティを定義するかどうかは、キーストアの要件に応じて決まります。

  10. 変更内容は自動的にアクティブ化されます。

9.2 WebLogic ServerへのSSLの構成(一方向)

一方向SSLでは、サーバーはクライアントに証明書を提示する必要がありますが、クライアントがサーバーに証明書を提示する必要はありません。

「SSLに関するキーストアの構成」の説明に従ってWebLogic Serverインスタンスのアイデンティティと信頼キーストアを構成したら、そのSSL属性を構成します。これらの属性では、「構成: キーストア」ページで指定したキーストア内のアイデンティティ鍵と証明書の場所を示します。この情報を指定するには、「構成: SSL」ページを使用します。

この項では、WebLogic ServerにSSLを構成するために必要な手順の概要を説明します。詳細は、『Oracle WebLogic Serverセキュリティの管理』を参照してください。

SSLを構成するには、次のようにします。

  1. WebLogic Server管理コンソールの左側のペインで、「環境」を開き、「サーバー」を選択します。

  2. SSLを構成するサーバーの名前をクリックします。

  3. 「構成」「SSL」ページを選択し、WebLogic Serverのアイデンティティ(証明書と秘密鍵)と信頼(信頼できるCA)の場所を選択します。

  4. 秘密鍵の別名とパスワードのSSL属性を設定します。

  5. ページの下部で、「詳細」をクリックします。

  6. 「ホスト名の検証」を「なし」に設定します。

  7. WebLogic Serverが内部サーバーとエクスポート可能クライアントとの間で何回エクスポート可能鍵を使用したら新しい鍵を生成する必要があるか、使用できる回数を指定します。新しい鍵を生成するまでに鍵を使用する回数が少ないほど、WebLogic Serverのセキュリティが強化されます。

  8. 「相互クライアント証明書の動作」コントロールを「クライアント証明書を要求しない」に設定します。

  9. インバウンドとアウトバウンドのSSL証明書検証方法を指定します。選択できるオプションは次のとおりです。

    • 組込みSSLの検証のみ: 組込みの信頼できるCAベースの検証を使用します。これがデフォルトです。

    • 組込みSSLの検証および証明書パス検証プロバイダ: 組込みの信頼できるCAベースの検証を使用し、追加の検証を実行するために構成済のCertPathValidatorプロバイダを使用します。

9.3 WebLogic ServerへのSSLの構成(双方向)

双方向SSLでは、サーバーはクライアントに、またクライアントはサーバーに証明書を提示します。SSLハンドシェイクを完了する前に、クライアントに有効で信頼できる証明の送信を要求するようにWebLogic Serverを構成できます。

「SSLに関するキーストアの構成」の説明に従って、WebLogic Serverインスタンスのアイデンティティと信頼キーストアを構成した後、使用するポリシーまたはテンプレートで必要な場合は、「双方向SSLの構成が必要なポリシー」の説明に従って双方向SSL属性を構成できます。

この項では、WebLogic ServerにSSLを構成するために必要な手順の概要を説明します。詳細は、『Oracle WebLogic Serverセキュリティの管理』を参照してください。

双方向SSLを構成する手順は次のとおりです。

  1. WebLogic Server管理コンソールの左側のペインで、「環境」を開き、「サーバー」を選択します。

  2. SSLを構成するサーバーの名前をクリックします。

  3. 「構成」「SSL」ページを選択し、WebLogic Serverのアイデンティティ(証明書と秘密鍵)と信頼(信頼できるCA)の場所を選択します。

  4. 秘密鍵の別名とパスワードのSSL属性を設定します。

  5. ページの下部で、「詳細」をクリックします。

  6. 「ホスト名の検証」を「なし」に設定します。

  7. WebLogic Serverが内部サーバーとエクスポート可能クライアントとの間で何回エクスポート可能鍵を使用したら新しい鍵を生成する必要があるか、使用できる回数を指定します。新しい鍵を生成するまでに鍵を使用する回数が少ないほど、WebLogic Serverのセキュリティが強化されます。

  8. 「相互クライアント証明書の動作」コントロールを「クライアント証明書を要求(強制する)」に設定します。

  9. インバウンドとアウトバウンドのSSL証明書検証方法を指定します。選択できるオプションは次のとおりです。

    • 組込みSSLの検証のみ: 組込みの信頼できるCAベースの検証を使用します。これがデフォルトです。

    • 組込みSSLの検証および証明書パス検証プロバイダ: 組込みの信頼できるCAベースの検証を使用し、追加の検証を実行するために構成済のCertPathValidatorプロバイダを使用します。

9.4 Webサービス・クライアントに関するSSLの構成

中核となるWebLogic Serverのセキュリティ・サブシステムでは、デフォルトのキーストアに格納されている秘密鍵とX.509証明書のペアをSSLに使用します。

WebLogic Serverでリクエストのデジタル署名に使用されるX.509証明書を、Webサービス・クライアントが信頼できるようにする必要があります。次のいずれかの操作を実行します。

  • WebLogic Serverが、信頼できる認証局から発行された、クライアントが自動的に信頼するデジタル証明書を取得するようにします。

  • WebLogic Serverが信頼する個々の証明書をすべてリストした証明書レジストリを作成し、クライアントが登録されたこれらの証明書を信頼するようにします。

  • クライアントおよびWebLogic Serverが同じシステムに存在する場合は、同じ信頼ストアを使用します。

Webサービス・クライアントに関する一方向SSLを構成するには、クライアントのJVMで次のプロパティを設定します。

  • javax.net.ssl.trustStore -- 信頼ストアの場所を指定するシステム・プロパティ。JKSの場合、信頼ストアが含まれるファイルの名前です。KSSの場合、KSS URIです。

    既存のJKSまたはKSS信頼ストアを使用するか、新規の信頼ストアを作成できます。たとえば、javax.net.ssl.trustStoreがデフォルトのkss://system/trust信頼ストアを指し示すことができます。

    新規JKS信頼ストアを作成するには、keytoolユーティリティを使用できます。新規KSSキーストアを作成するには、Fusion Middleware Controlを使用できます。

  • javax.net.ssl.trustStoreType -- デフォルトのTrustManagerでJKSまたはKSSのいずれかを使用する信頼ストア・オブジェクトのタイプ。

  • javax.net.ssl.trustStorePassword -- JKSのみ。信頼ストアのパスワードを指定します。

Oracle Infrastructure Webサービス・クライアントの場合、ディスクリプタ・ファイルに個々のプロパティを設定することもできます。個々のディスクリプタ・ファイルのプロパティ・セットは、システム・プロパティを使用して、プロパティ・セットをオーバーライドします。

  • SOAコンポジットの場合、composite.xmlにプロパティを設定します。

  • ADF Webサービス・データ・コントロール(ADFDC)の場合、connections.xmlにプロパティを設定します。

  • ADFビジネス・コンポーネントおよびWebCenterクライアントの場合、oracle-webservices-client.xmlにプロパティを設定します。

9.5 Webサービス・クライアントに関する双方向SSLの構成


注意:

SOAアプリケーションが双方向SSLでのWebサービス・クライアントである場合の特定の構成手順については、Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理の双方向SSL通信のSOAコンポジット・アプリケーションの構成に関する項を参照してください。

クライアントでリクエストのデジタル署名に使用されるX.509証明書をWebLogic Serverが検証でき、WebLogic Serverがその証明書をクライアントへの応答の暗号化に使用できるようにする必要があります。次のいずれかの操作を実行します。

  • クライアント・アプリケーションが、信頼できる認証局から発行された、WebLogic Serverが自動的に信頼するデジタル証明書を取得するようにします。

  • WebLogic Serverが信頼する個々の証明書をすべてリストした証明書レジストリを作成し、クライアントが登録されたこれらの証明書のいずれかを使用するようにします。

  • クライアントおよびWebLogic Serverが同じシステムに存在する場合は、同じキー・ストアおよび信頼ストアを使用します。

Webサービス・クライアントに関するSSLを構成するには、次のプロパティがクライアントのJVMで設定されていることを確認します。

  • javax.net.ssl.keyStore -- キーストアの場所を指定するシステム・プロパティ。JKSの場合、キーストアが含まれるファイルの名前です。KSSの場合、KSS URIです。

    既存のJKSまたはKSSキーストアを使用するか、新規のキーストアを作成できます。たとえば、javax.net.ssl.keyStoreがデフォルトのkss://system/castoreキーストアを指し示し、WebLogic Serverが使用するX.509証明書をWebサービス・クライアントが使用できるようにします。

    新規JKSキーストアを作成するには、keytoolユーティリティを使用できます。新規KSSキーストアを作成するには、Fusion Middleware Controlを使用できます。

  • javax.net.ssl.keyStoreType -- デフォルトのTrustManagerでJKSまたはKSSのいずれかを使用するKeyStoreオブジェクトのタイプ。

  • javax.net.ssl.trustStore -- 信頼ストアの場所を指定するシステム・プロパティ。JKSの場合、信頼ストアが含まれるファイルの名前です。KSSの場合、KSS URIです。

    既存のJKSまたはKSS信頼ストアを使用するか、新規の信頼ストアを作成できます。たとえば、WebLogic Serverが信頼するX.509証明書をWebサービス・クライアントが信頼するように、javax.net.ssl.trustStoreがデフォルトのkss://system/trust信頼ストアを指し示すようにできます。

    新規JKS信頼ストアを作成するには、keytoolユーティリティを使用できます。新規KSSキーストアを作成するには、Fusion Middleware Controlを使用できます。

  • javax.net.ssl.trustStoreType -- デフォルトのTrustManagerでJKSまたはKSSのいずれかを使用するTrustStoreオブジェクトのタイプ。

  • javax.net.ssl.trustStorePassword -- JKSのみ。信頼ストアのパスワードを指定します。

  • HTTPClient.ssl.identityAlias -- アイデンティティに使用する証明書の別名。別名がnullの場合、JSSEプロバイダはキーストア内の別名のいずれかを選択します。

Oracle Infrastructure Webサービス・クライアントの場合、ディスクリプタ・ファイルに個々のプロパティを設定することもできます。個々のディスクリプタ・ファイルのプロパティ・セットは、システム・プロパティを使用して、プロパティ・セットをオーバーライドします。

  • SOAコンポジットの場合、composite.xmlにプロパティを設定します。

  • ADF Webサービス・データ・コントロール(ADFDC)の場合、connections.xmlにプロパティを設定します。

  • ADFビジネス・コンポーネントおよびWebCenterクライアントの場合、oracle-webservices-client.xmlにプロパティを設定します。

9.6 Oracle HTTP ServerでのSSLの構成

HTTPSプロトコルは、クライアントとサーバー間で保護された接続を確立するためにSecure Sockets Layer (SSL)と呼ばれる業界標準のプロトコルを使用します。クライアントとWebサービス間で通信するための通信プロトコルの1つとして、Oracle HTTP Serverによって提供されるHTTPS/SSLサポートを使用することもできます。この項では、OWSMポリシーを使用して、SSL経由でリクエストを送信するようにWebサービス・クライアントおよびWebサービスを設定する方法を説明します。Oracle HTTP Serverは、クライアントとOracle WebLogic Server間を仲介するWebプロキシとして構成されます。Oracle HTTP ServerでSSLが有効であり、またクライアントとOracle HTTP Server間でSSLトランスポートが有効です。Oracle HTTP ServerとWebLogic Server間の通信は非SSLのままです。ここでは、一方向SSLおよび双方向SSLを必要とするポリシーを構成する方法について説明します。

詳細は、次を参照してください:

  • 『Oracle Fusion Middlewareの管理』のOracle Fusion MiddlewareでのSSL構成に関する項

  • 『Oracle WebLogic Serverセキュリティの管理』のSSLの構成に関する項

  • Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSSLの設定に関する項を参照してください。

  • 『Oracle HTTP Serverの管理』のSecure Sockets Layerの構成に関する項

9.6.1 一方向SSL

一方向SSL構成を必要とするOWSMポリシーの詳細は、「SSLの構成が必要なOWSMポリシー」を参照してください。

一方向SSLを使用するには、次の作業を実行する必要があります。

  1. 次の手順に従って、Oracle HTTP Serverを構成します。

    1. 例9-1に示すように、ファイルORACLE_INSTANCE/config/OHS/<ohs_name>/ssl.confで、Oracle HTTP ServerをWebプロキシとして構成し、アクセスするURLのリストを指定します。

      例9-1 ssl.confでのURLの指定

      # added properties for configuring OHS as webproxy
      <IfModule weblogic_module>
      WebLogicHost <host>
      WebLogicPort <port>
      SecureProxy Off
      WlProxySSL On
      Debug ALL
      WlLogFile /tmp/weblogic.log
      #the location attributes list the urls you want to access via OHS
      <Location
       /myWlsService>
              SetHandler weblogic-handler
              WebLogicHost <host>
              WeblogicPort <port>
      </Location>
       
      
    2. 同じファイルで、クライアント証明書情報がWebLogic Serverに送信されるように、仮想ホスト構成で次のプロパティを設定します。

      SSLVerifyClient optional

    3. デフォルトでは、Oracle HTTP ServerでSSLは有効です。デフォルトのhttpsポートは4443です。このポートの構成の詳細は、『Oracle Fusion Middlewareの管理』のOracle Fusion MiddlewareでのSSLの構成に関する項を参照してください。

    4. Oracle HTTP Serverを再起動します。

      詳細は、『Oracle Fusion Middlewareの管理』のOracle Fusion MiddlewareでのSSLの構成に関する項を参照してください。

  2. 『Oracle Fusion Middlewareの管理』のキーストア、ウォレットおよび証明書の管理に関する項の説明に従ってウォレットを作成し、デフォルトのウォレットを置換します。デフォルトのウォレットは、ORACLE_INSTANCE/config/OHS/<ohs_name/keystores/defaultディレクトリ内にあります。例9-2に、ウォレットを作成するためのサンプル・コマンドを示します。

    例9-2 一方向SSLのためのサンプル・コマンド

    ./orapki wallet create -wallet <wallet_location> -pwd password -auto_login
    ./orapki wallet display -wallet <wallet_location> -pwd password
    ./orapki cert display -cert <wallet_location>/ohs.crt
        
    ./orapki wallet add -wallet <wallet_location> -keysize 512 -dn "CN=<host_name>,OU=st,O=owsm,L=N,ST=delhi,C=IN"
    -self_signed -validity 700 -serial_num 20 -cert <wallet_location>/ohs.crt -user_cert -pwd password
        
    ./orapki wallet display -wallet <wallet_location> -pwd password
        
    JAVA_HOME/bin/keytool -import -trustcacerts -file ohs.crt -alias sslcert -keystore client_keystore.jks -storepass password
    
  3. Oracle WebLogic管理コンソールで、次の手順を実行します。

    1. 「環境」タブの「サーバー」ページに移動します。

    2. 「AdminServer」をクリックし、「構成」で「一般」を選択します。

    3. 「詳細」セクションで、「WebLogicプラグインの有効化」および「クライアント証明書プロキシの有効化」を選択していることを確認します。

    4. 変更を保存します。

    5. SOAサーバーに同じパラメータを設定します。

      詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプサーバー: 構成: 要約に関する項を参照してください。

一方向モード(サーバー認証モード)を使用するようにクライアントを変更するために、JDeveloperを使用してWebサービスからJSEクライアントを作成します。例9-3に従って、パラメータおよびプロパティを変更します。

例9-3 SSLを使用するJSEクライアント

public static void main(String [] args)
  {
    class1Service = new Class1Service();   
        SecurityPolicyFeature[] securityFeatures =
            new SecurityPolicyFeature[] { new SecurityPolicyFeature("oracle/wss_
saml_token_over_ssl_client_policy") };
    Class1 class1 = class1Service.getClass1Port(securityFeatures);       
    ((BindingProvider) class1).getRequestContext().put(BindingProvider.ENDPOINT_
ADDRESS_PROPERTY,
        "https://<host>:4443/myWlsService/Class1Port");
       
    ((BindingProvider) class1).getRequestContext().put(BindingProvider.USERNAME_
PROPERTY, "weblogic");
    System.setProperty("javax.net.ssl.trustStore","D:\\OWSM_
QA\\11g\\PS2\\OHS\\wallet\\client_keystore.jks");
    System.setProperty("javax.net.ssl.trustStorePassword","password");
    System.setProperty("javax.net.ssl.trustStoreType","JKS");   
   
    System.setProperty("weblogic.security.SSL.ignoreHostnameVerification" ,
 "true");
    System.setProperty("java.protocol.handler.pkgs",
 "com.sun.net.ssl.internal.www.protocol");
    System.setProperty("javax.net.debug","all");       
   
    System.out.println("Call to the SSL service...");           
    String response1 = class1.sayHello("test");
    System.out.println("Response = " + response1);
  }

9.6.2 双方向SSL

双方向SSL構成を必要とするOWSMポリシーの詳細は、「双方向SSLの構成が必要なポリシー」を参照してください。

双方向SSLを使用するには、次の作業を実行する必要があります。

  1. 次の手順に従って、Oracle HTTP Serverを構成します。

    1. 例9-4に示すように、ファイルORACLE_INSTANCE/config/OHS/<ohs_name>/ssl.confで、Oracle HTTP ServerをWebプロキシとして構成し、アクセスするURLのリストを指定します。

      例9-4 ssl.confでのURLの指定

       # added properties for configuring OHS as webproxy
      <IfModule weblogic_module>
      WebLogicHost <host>
      WebLogicPort <port>
      SecureProxy Off
      WlProxySSL On
      Debug ALL
      WlLogFile /tmp/weblogic.log
      #the location attributes list the urls you want to access via OHS
      <Location /myWlsService>
              SetHandler weblogic-handler
              WebLogicHost <host>
              WeblogicPort <port>
      </Location>
      
    2. 同じファイルで、クライアント証明書情報がWebLogic Serverに送信されるように、仮想ホスト構成で次のプロパティを設定します。

      SSLVerifyClient optional

      SSLOptions +StdEnvVars +ExportCertData

      SSLOptions +ExportCertDataは、証明書に関連する情報をWebLogic Serverに送信するようにするmod_sslディレクティブです。SSLOptions +StdEnvVars +ExportCertDataは、SSLに関連する情報を送信するようにします。

    3. デフォルトでは、Oracle HTTP ServerでSSLは有効です。デフォルトのhttpsポートは4443です。このポートの構成の詳細は、『Oracle Fusion Middlewareの管理』のOracle Fusion MiddlewareでのSSLの構成に関する項を参照してください。

    4. Oracle HTTP Serverを再起動します。

      詳細は、『Oracle Fusion Middlewareの管理』のOracle Fusion MiddlewareでのSSLの構成に関する項を参照してください。

  2. 『Oracle Fusion Middlewareの管理』のキーストア、ウォレットおよび証明書の管理に関する項の説明に従ってウォレットを作成し、デフォルトのウォレットを置換します。デフォルトのウォレットは、ORACLE_INSTANCE/config/OHS/<ohs_name/keystores/defaultディレクトリ内にあります。例9-5に、サンプル・コマンドを示します。

    例9-5 双方向SSLのためのサンプル・コマンド

    JAVA_HOME/bin/keytool -genkey -alias twowayssl -keyalg RSA
     -keystore twowaykeystore.jks -storepass password -validity 700
    ./orapki wallet add -wallet <wallet_location> -cert
     <wallet_location>/twowayssl.crt -trusted_cert -pwd password
    
  3. Oracle WebLogic管理コンソールで、次の手順を実行します。

    1. 「環境」タブの「サーバー」ページに移動します。

    2. 「AdminServer」をクリックし、「構成」で「一般」を選択します。

    3. 「詳細」セクションで、「WebLogicプラグインの有効化」および「クライアント証明書プロキシの有効化」を選択していることを確認します。

    4. 変更を保存します。

    5. SOAサーバーに同じパラメータを設定します。

      詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプサーバー: 構成: 要約に関する項を参照してください。

双方向(相互認証モード) SSLを使用するようにクライアントを変更するために、JDeveloperを使用してWebサービスからJSEクライアントを作成します。例9-6に従って、パラメータおよびプロパティを変更します。

例9-6 SSLを使用するJSEクライアント

public static void main(String [] args)
  {
    class1Service = new Class1Service();   
        SecurityPolicyFeature[] securityFeatures =
            new SecurityPolicyFeature[] { new SecurityPolicyFeature("oracle/wss_saml_token_over_ssl_client_policy") };
    Class1 class1 = class1Service.getClass1Port(securityFeatures);       
    ((BindingProvider) class1).getRequestContext().put(BindingProvider.ENDPOINT_
ADDRESS_PROPERTY,
        "https://<host>:4443/myWlsService/Class1Port");
       
    ((BindingProvider) class1).getRequestContext().put(BindingProvider.USERNAME_
PROPERTY, "weblogic");
    ((BindingProvider) class1).getRequestContext().put(BindingProvider.PASSWORD_
PROPERTY, "password");
    System.setProperty("javax.net.ssl.trustStore","D:\\OWSM_
QA\\11g\\PS2\\OHS\\wallet\\twowaykeystore.jks");  
    System.setProperty("javax.net.ssl.trustStorePassword","password");
    System.setProperty("javax.net.ssl.trustStoreType","JKS");   
    System.setProperty("javax.net.ssl.keyStore","D:\\OWSM_QA\\11g\\PS2\\OHS\\wallet\\twowaykeystore.jks");
    System.setProperty("javax.net.ssl.keyStorePassword","password");
    System.setProperty("javax.net.ssl.keyStoreType","JKS");   
   
    System.setProperty("weblogic.security.SSL.ignoreHostnameVerification" ,
 "true");
    System.setProperty("java.protocol.handler.pkgs",
 "com.sun.net.ssl.internal.www.protocol");
    System.setProperty("javax.net.debug","all");       
   
    System.out.println("Call to the SSL service...");           
    String response1 = class1.sayHello("test");
    System.out.println("Response = " + response1);
  }