プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理
12c (12.2.1.3.0)
E90181-03
目次へ移動
目次

前
次

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

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

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

トピック:

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

キーストアを構成することによって、OWSMポリシー・マネージャでSSLを使用できます。

ポリシーは、SSLの構成が必要なOWSMポリシーまたは双方向SSLの構成が必要なポリシーのリストに一覧表示されています。

SSLでは、ネットワーク接続している2つのアプリケーションが互いのアイデンティティを認証できるようにするとともに、アプリケーション間でやりとりされるデータを暗号化することでセキュアな接続が実現します。

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

この節では、以下のトピックについて説明します。

9.1.1 WebLogic ServerでのKSSキーストアの構成の理解

OPSSキーストア・サービスでは、メッセージ・セキュリティを確保するためにキーおよび証明書を管理する代替の方式が提供されています。この項では、WebLogic ServerにOPSSキーストア・サービスを構成するために必要な手順の概要を説明します。

『Oracle Platform Security Servicesによるアプリケーションの保護』のキーストア・サービスを使用した鍵と証明書の管理に関する項で説明するように、OPSSキーストア・サービスを使用して、KSSタイプのキーストアを作成および管理します。

詳細は、次の2つの資料を参照してください。

  • Oracle WebLogic Server管理コンソール・オンライン・ヘルプの「サーバー: 構成: キーストア」。

  • 『Oracle WebLogic Serverセキュリティの管理 12c (12.2.1)』のキーストアの構成

この節では、以下のトピックについて説明します。

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

KSSのデモIDキーストアとデモ信頼キーストアは、ドメインの作成時にすでに構成されています。これらのキーストアをさらに構成する必要はありません。

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

  1. WebLogic Server管理コンソールで、「ドメイン」→「セキュリティ」→「詳細」ページに移動し、「デモへのKSSの使用」チェック・ボックスが有効になっていることを確認します。
  2. キーストアの構成に関する項で説明しているように、デモIDおよびデモ信頼を使用するように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の手順について説明していますが、「キーストア・サービスを使用したキーと証明書の管理」では、両方の方法について説明しています。

デモIDおよびデモ信頼に対してOPSSキーストア・サービスを構成するには、次の手順を実行します。

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

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

  3. systemストライプにdemoidentityという名前のキーストアを作成します。(詳細は、Fusion Middleware Controlでのキーストアの作成に関する項を参照してください。)

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

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

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



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

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

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

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

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

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

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

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

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

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

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



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

    2. DemoCertFor_<WLS Domain Name>として共通名を指定します。ここで、DemoCertFor_は必須定数で、<WLS Domain Name>はWebLogic Serverドメイン名です。たとえば、DemoCertFor_base_domainのように指定します。

      注意:

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

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

    4. ご使用の環境に適している場合は、デフォルトのRSAキー・サイズを受け入れます。キーの長さは1024ビット以上にする必要があります。

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

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

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

  7. キーストアの構成に関する項で説明しているように、デモIDおよびデモ信頼を使用するように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 キーストアの作成



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

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

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

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

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

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

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

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

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

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

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



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

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

    3. ご使用の環境に適している場合は、デフォルトのRSAキー・サイズを受け入れます。キーの長さは1024ビット以上にする必要があります。

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

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

  6. このKSSデモCA署名の鍵ペアをそのまま使用することも、Entrust、Verisignなどの信頼できるベンダーから署名証明書を取得することもできます。

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

    CA署名付き証明書のインポート方法の詳細は、Fusion Middleware Controlを使用した証明書のインポートの「Fusion Middleware Controlを使用した証明書のインポート」を参照してください。

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

    注意:

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

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

  8. キーストアの構成に関する項で説明しているように、カスタムIDおよびカスタム信頼に対して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でJKSキーストアを構成できます。

このトピックでは、WebLogic ServerでJKSキーストアを構成するために必要な手順の概要を説明します。

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

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

  • Oracle WebLogic Server管理コンソール・オンライン・ヘルプの「サーバー: 構成: キーストア」。
  • 『Oracle WebLogic Serverセキュリティの管理 12c (12.2.1)』のキーストアの構成

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

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

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

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

    PEM (Privacy Enhanced Mail)フォーマットは、秘密鍵、デジタル証明書、および信頼性のある認証局(CA)向けの推奨フォーマットです。

    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つ、キーストアを作成します。推奨されるキーストアのフォーマットはJKS (Javaキーストア)です。
  3. 秘密鍵と信頼できるCAをキーストアにロードします。
  4. 管理コンソールの左側のペインで、「環境」を展開し、「サーバー」を選択します。
  5. IDキーストアおよび信頼キーストアを構成するサーバーの名前をクリックします。
  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.1.3 クラスタ上のJKSキーストア・ファイルの同期の構成

12.2.1のフレッシュ・インストールでJKSキーストアを構成するか、アップグレード・シナリオでJKSを使用できます。

JKSキーストア・ファイルの同期をクラスタ上でサーバーを再起動せずに行うには、次の手順を実行します。

  1. wsm-client-mbeans.xmlファイルをテキスト・エディタで開きます。
  2. 次のプロパティをwsm-client-mbeans.xmlに手動で追加します。
    <config-file path="../default-keystore.jks"/>
    

    注意:

    default-keystore.jksは他の名前である場合があります。このため、ファイル・パスを指定する必要があります。

    wsm-client-mbeans.xmlファイル内のJKS MBeanは次のような内容です。

    <?xml version = '1.0' encoding = 'UTF-8' standalone='yes'?>
    <application-mbeans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/11/application-mbeans-11_1.xsd" schema-major-version="11" schema-minor-version="1">
    <config-mbeans>
          <jmx-config-mbean
                 objectname="oracle.wsm:type=security,name=JKSKeystoreMBean"
                 class="oracle.wsm.security.store.jks.mgmt.KeystoreMBeanImpl"
                
     management-interface="oracle.wsm.security.store.jks.mgmt.KeystoreMBean">
                <description>MBean to access and manage JKS
    Keystore</description>
                <config-file path="../default-keystore.jks"/>
            </jmx-config-mbean>
        </config-mbeans>
    </application-mbeans> 
    
  3. wsm-client-mbeans.xmlファイルを保存します。
  4. 構成ファイルのパスを追加したら、サーバーを再起動します。

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

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

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

この項では、WebLogic ServerにSSLを構成するために必要な手順の概要を説明します。詳細は、SSLの構成を参照してください。

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を構成するために必要な手順の概要を説明します。詳細は、SSLの構成を参照してください。

双方向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の構成

Webサービス・クライアントに双方向SSLを構成するには、クライアントでリクエストのデジタル署名に使用されるX.509証明書をWebLogic Serverが検証でき、WebLogic Serverがその証明書をクライアントへの応答の暗号化に使用できるようにする必要があります。

注意:

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

Webサービス・クライアントに双方向SSLを構成するには、次のいずれかを行います。

  • 信頼性のある認証局で発行されているために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のままです。

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

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

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

  • Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSSLの構成に関する項

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

ここでは、一方向SSLおよび双方向SSLを必要とするポリシーを構成する方法について説明します。次のトピックが含まれています:

9.6.1 Oracle HTTP Serverの一方向SSLの構成

この項では、Oracle HTTP Serverでの一方向SSLの構成方法について説明します。

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

一方向SSLを使用するには、次の手順に従ってください。

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

    1. 次の例に示すように、ファイルORACLE_INSTANCE/config/OHS/<ohs_name>/ssl.confで、Oracle HTTP ServerをWebプロキシとして構成し、アクセスする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ディレクトリ内にあります。次の例は、一方向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クライアントを作成します。次の例に示されているように、パラメータおよびプロパティを変更します。

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 Oracle HTTP Serverの双方向SSLの構成

この項では、Oracle HTTP Serverでの双方向SSLの構成方法について説明します。

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

双方向SSLを使用するには、次の手順を実行します。

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

    1. 次の例に示すように、ファイルORACLE_INSTANCE/config/OHS/<ohs_name>/ssl.confで、Oracle HTTP ServerをWebプロキシとして構成し、アクセスする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ディレクトリ内にあります。双方向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クライアントを作成します。次の例に従って、パラメータおよびプロパティを変更します。

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);
  }