ヘッダーをスキップ

Oracle Containers for J2EE セキュリティ・ガイド
10g(10.1.3.4.0)

B50832-01
目次
目次
索引
索引

戻る 次へ

15 OC4JとのSSL通信

OC4Jでは、次のようにSecure Sockets Layer(SSL)通信がサポートされます。

この章では、スタンドアロンのOC4Jのシナリオとともに、Oracle Application Server環境での2つのシナリオとして、OC4JをWebリスナーとするOPMN管理OC4Jと、Oracle HTTP ServerをWebリスナーとするOPMN管理OC4Jについて説明します。この章の内容は次のとおりです。

セキュリティ・プロバイダとSSL対応アプリケーションの統合

この項では、SSL対応J2EE環境でHTTPクライアント・リクエストが開始された場合の、Oracleコンポーネントの役割について説明します。図15-1は、このような環境で動作するアプリケーションを示しています。

図15-1    SSL対応J2EE環境でのOracleコンポーネントの統合


画像の説明

このプロセスの手順は次のとおりです。

  1. HTTPクライアントが、OC4JによりホスティングされているWebアプリケーションWebApp A1にアクセスします。Oracle HTTP Serverがリクエストを処理します。

  2. mod_ossl/Oracle HTTP Serverは、リクエストを受信し、WebApp A1アプリケーションがHTTPクライアントに対するSSLサーバー認証を要求しているかどうかを判別します。

  3. サーバーまたはクライアントのWallet証明書を構成している場合は、HTTPクライアントに対してOracle HTTP Serverのサーバー証明書受入れおよびクライアント証明書の提供を要求します。

  4. OC4Jセキュリティ・プロバイダが、SSLクライアント証明書を取得します。

  5. セキュリティ・プロバイダが、証明書からSSLユーザーを取得します。

  6. 最後の手順は、<jazn>要素のjaas-mode設定に応じて異なります。JAASモードの使用方法を、「JAASモードの概要」および「JAASモードの構成と使用」で確認してください。

OC4JおよびOracle HTTP Serverでの鍵と証明書の使用

次の手順では、OC4JでSSL通信に鍵と証明書を使用する方法について説明します。ここで説明するのはサーバー・レベルの手順で、一般に安全な通信を必要とするアプリケーションのデプロイ前、通常はOracle Application Serverインスタンスの初期設定時に実行します。

キーストアは、すべてのトラステッド・ユーザーの証明書など、アプリケーションで使用される証明書の格納に使用されることに注意してください。OC4Jなどのエンティティは、そのキーストアを介して第三者の認証や、第三者に対する自己認証を行うことができます。Oracle HTTP Serverには、これと同じ用途を持つWalletと呼ばれるものがあります。

Javaでは、キーストアはjava.security.KeyStoreインスタンスで、Sun社のJDKに付属のkeytoolユーティリティを使用して作成および操作できます。このオブジェクトの基礎となっているのは、物理的にはファイルです。

Oracle Wallet Managerには、Oracle Walletのための機能があります。この機能は、キーストアのためのkeytoolの機能に相当します。


注意

  • 信頼関係を確立する際にキーストアまたはWalletを使用するには、そのキーストアまたはWalletに秘密鍵、公開鍵および信頼できる証明書(CA証明書)が含まれている必要があります。

  • OC4J付属のデフォルトWalletには、信頼できる証明書が含まれていません。デフォルトのWalletのかわりに、独自のWalletを作成してプロビジョニングする必要があります。

 

関連項目

  • keytoolの詳細は、次のURLを参照してください。

    http://java.sun.com/j2se/1.3/docs/tooldocs/win32/
    keytool.html
  • Oracle Wallet Managerの詳細は、『Oracle Application Server管理者ガイド』を参照してください。

 

次に、OC4JとOracle HTTP Server間で証明書を使用するためのOC4Jでの手順を示します。

  1. keytoolを使用して、秘密鍵、公開鍵および未署名の証明書を生成します。この情報は、新規または既存のキーストアに置くことができます。

  2. 次のどちらかのアプローチを使用して証明書の署名を取得します。

    独自の署名を次の手順で生成します。

    1. keytoolを使用して証明書の自己署名を行います。この方法は、クライアントから、事実上、独自の認証局として信頼される場合に適しています。

    または、認識されている認証局から次の手順で署名を取得します。

    1. 手順1の証明書を使用し、keytoolを使用して、認証局に証明書への署名を要求する証明書リクエストを生成します。

    2. 証明書リクエストを認証局(VeriSign社やThawte社など。この後にリンクを記載しています)に対して発行します。

    3. 認証局から署名を受け取り、keytoolを使用してキーストアにインポートします。キーストアでは、署名が関連する証明書と照合されます。

      関連項目

      • OCAの詳細は、『Oracle Application Server Certificate Authority管理者ガイド』を参照してください。

       

署名を要求して受け取るプロセスは、使用する認証局に応じて異なります。このプロセスはOracle Application Serverのスコープおよび制御の対象外のため、ここでは説明しません。詳細は、任意の認証局のWebサイトにアクセスしてください。(ブラウザには、信頼できる認証局のリストがあります。)たとえば、VeriSign社とThawte社のWebアドレスは次のとおりです。

http://www.verisign.com/

http://www.thawte.com/

OC4JとOracle HTTP Server間でSSL通信を行うには、Oracle HTTP Serverで必要に応じて次の手順を実行する必要があります。

  1. 前述のOC4Jでの手順と同様の手順を実行しますが、キーストアとkeytoolユーティリティのかわりに、WalletとOracle Wallet Managerを使用します。

  2. 必要に応じて実行: OC4Jの証明書にOracle HTTP Serverで信頼されていないエンティティの署名がある場合は、エンティティの証明書を取得してOracle HTTP Serverにインポートします。問題のOC4Jの証明書が自己署名されているかどうかによって、詳細は次のように異なります。

    OC4Jが自己署名された証明書を持っている(基本的にOracle HTTP ServerはOC4Jを信頼していない)場合:

    1. OC4Jでkeytoolを使用してOC4Jの証明書をエクスポートします。この手順により、Oracle HTTP Serverからアクセス可能なファイルに証明書が置かれます。

    2. Oracle HTTP ServerでOracle Wallet Managerを使用して、OC4Jの証明書をインポートします。

    または、OC4Jが(Oracle HTTP Serverで信頼されていない)別のエンティティが署名した証明書を持っている場合:

    1. そのエンティティから証明書を適切な方法(エンティティの証明書をエクスポートするなど)で、取得します。正確な手順は、エンティティによって異なります。

    2. Oracle HTTP ServerでOracle Wallet Managerを使用して、エンティティの証明書をインポートします。

  3. 必要に応じて実行: Oracle HTTP Serverの証明書にOC4Jで信頼されていないエンティティが署名しており、かつOC4Jがクライアント認証を必要とする操作モードになっている場合は、次の操作を行います。

    (これは「クライアント認証の要求」でも説明しています。)

    1. そのエンティティから証明書を適切な方法(エンティティの証明書をエクスポートするなど)で、取得します。正確な手順は、エンティティによって異なります。

    2. OC4Jでkeytoolを使用してエンティティの証明書をインポートします。

スタンドアロンOC4JでのSSLの使用

スタンドアロンOC4Jでは、HTTPSを使用して、クライアントとOC4Jの間で直接、SSL通信を行うことができます。この項では、これを行う方法について説明します。

次の手順に従います。

  1. keytoolユーティリティを使用し、RSAの秘密鍵/公開鍵のペアを指定してキーストアを作成します。この例では、RSA鍵ペア生成アルゴリズムを使用し、パスワードに123456を指定してファイルmykeystore.jksに属するキーストアを生成します。

    % keytool -genkey -keyalg RSA -keystore mykeystore.jks -storepass 123456
    
    

    このツールでは、各項目の意味は次のとおりです。

    • keystoreオプションでは、鍵が格納されるファイルの名前を設定します。

    • storepassオプションでは、キーストアを保護するためのパスワードを設定します。コマンドラインでこのオプションを省略し、かわりにパスワードの入力が要求されるようにすることもできます。

    keytoolにより、次のように追加情報が要求されます。

    What is your first and last name?
      [Unknown]:  Test User
    What is the name of your organizational unit?
      [Unknown]:  Support
    What is the name of your organization?
      [Unknown]:  Oracle
    What is the name of your City or Locality?
      [Unknown]:  Redwood Shores
    What is the name of your State or Province?
      [Unknown]:  CA
    What is the two-letter country code for this unit?
      [Unknown]:  US
    Is <CN=Test User, OU=Support, O=Oracle, L=Redwood Shores, ST=CA, C=US> correct?
      [no]:  yes
    
    Enter key password for <mykey>
            (RETURN if same as keystore password):
    
    

    キー・パスワードに対しては、常に[Enter]キーを押します。OC4J 10.1.3.x実装では、キーストアのパスワードは、キー・エントリのパスワードと同じである必要があります。

    mykeystoreファイルは、現行ディレクトリに作成されます。鍵のデフォルトの別名はmykeyです。


    注意

    keytoolユーティリティでは、JKS形式のキーストアとともに、PKCS12形式のWalletがサポートされます。 


    関連項目

    • keytoolユーティリティの詳細は、次のURLを参照してください。

      http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/
      keytool.html
    • ISOの2文字の国コード・リストは、次のURLで参照してください。

      http://www.bcpl.net/~jspath/isocodes.html
      
     

  2. secure-web-site.xmlファイルがない場合は、ORACLE_HOME/j2ee/home/config/secure-web-site.xml(J2EEの規約上、この名前を使用)を作成します。最初にdefault-web-site.xmlから必要な内容をコピーすることもできます。通常、この内容には<web-site>要素下の次のサブ要素が含まれます。

    • <web-app>(保護の対象となるWebアプリケーションごと)

    • <access-log>(ロギング用。適切なログ・ファイルが指定されていることを確認すること)

    • <default-web-app>

    SSL構成には<ssl-config>要素も必要です。これについては、この手順で後述します。

  3. 次の要素を使用して、secure-web-site.xmlを更新します。

    1. secure="true"を追加し、portを適切なポートに設定して、<web-site>要素を更新します。(たとえば、port="4443"のように設定します。デフォルトの443を使用するには、スーパーユーザーになる必要があります。)スタンドアロンOC4Jの場合は、デフォルトの設定であるHTTPプロトコルを使用します。(protocol="http"設定とsecure="true"を組み合せることで、HTTPSが使用されます。)

      <web-site port="4443" secure="true" protocol="http" 
                display-name="Default OracleAS Containers for J2EE Web Site" >
         ...
      </web-site>
      
      

      (必要に応じて、display-name設定も変更する必要があります。)

    2. <web-site>要素内に次を追加してキーストアとパスワードを定義します。

      <ssl-config keystore="your_keystore" keystore-password="your_password" />
      
      

      your_keystoreは、キーストアのパスです。絶対パスまたは(WebサイトのXMLファイルが置かれている)ORACLE_HOME/j2ee/home/configに対する相対パスを指定します。your_passwordはキーストアのパスワードです。


      注意

      パスワードは、パスワードの間接化によって非表示にできます。
      「パスワードの間接化の使用方法」を参照してください。 


    3. 次の「secure-web-site.xmlにおけるオプションの手順」も参照してください。

    4. 変更結果をsecure-web-site.xmlに保存します。

    次に例を示します。

    <?xml version="1.0"?>
    <web-site display-name="OC4J 10g Secure Web Site" protocol="http" 
              port="4443" secure="true">
       <ssl-config keystore="./roadrunner.jks" keystore-password="welcome1" />
       <default-web-app application="default" name="defaultWebApp" root="/" />
       <web-app application="SSLDemos-Project1-WS" name="WebServices"
                load-on-startup="true" root="/SSLDemos-Project1-context-root" />
       <access-log path="../log/default-web-access2.log" split="day" />
    </web-site>
    
  4. server.xmlsecure-web-site.xmlファイルを参照しているかどうかを確認します。

    1. 必要に応じて、server.xmlにおいて次の行をコメント解除することで追加します。

      <web-site path="./secure-web-site.xml" />
      
      
    2. 変更結果をserver.xmlに保存します。

  5. OC4Jを停止してから再起動し、secure-web-site.xmlファイルの追加を初期化します。ブラウザを使用してSSLポートでサイトにアクセスし、SSLポートをテストします。アクセスに成功すると、受け入れられる認証局の署名がないため、証明書を受け入れるかどうかを確認するプロンプトが表示されます。

完了すると、OC4JはあるポートでSSLリクエストをリスニングし、別のポートで非SSLリクエストをリスニングします。server.xml構成ファイル内で適切な*-web-site.xmlの参照行をコメント解除すると、SSLリクエストまたは非SSLリクエストを無効にできます。

<web-site path="./secure-web-site.xml" /> - comment this to remove SSL
<default-site path="./default-web-site.xml" /> - comment this to remove non-SSL

これらのWebサイトは、異なるポートを使用する必要があります。

secure-web-site.xmlにおけるオプションの手順

前述のsecure-web-site.xml構成手順に加えて、次のオプションの手順も必要に応じて実行します。

  1. <ssl-config>要素の属性であるneeds-client-authフラグを、次のようにtrueに設定することで、クライアント認証を必須に指定します。

    <web-site ... secure="true" ... >
       ...
       <ssl-config keystore="path_and_file" keystore-password="pwd" 
                   needs-client-auth="true" />
    </web-site>
    
    

    この手順では、OC4Jが安全な通信を行うため、クライアント・エンティティをそのIDに応じて受け入れるか拒否するかを選択するモードを設定します。needs-client-auth属性を設定すると、OC4Jは接続時にクライアント証明連鎖をリクエストします。クライアントのルート証明書が認識されると、クライアントは受け入れられます。

    <ssl-config>要素で指定するキーストアには、HTTPSを介してOC4Jへの接続の認可を受ける任意のクライアントの証明書が格納されている必要があります。


    重要

    スタンドアロンOC4J(Oracle HTTP Serverなし)でCLIENT-CERT認証モードを使用するには、needs-client-auth="true"の設定が必要です。関連情報は、「クライアント認証の要求」を参照してください。 


  2. Webサイトの各アプリケーションを、共有アプリケーションとして指定します。<web-app>要素のshared属性で、複数のバインディング(様々なWebサイトまたはポートおよびコンテキスト・ルート)を共有できるかどうかを指定します。サポートされる値はtrueおよびfalse(デフォルト)です。

    共有とは、セッション、サーブレット・インスタンスおよびコンテキスト値など、Webアプリケーションの構成要素すべてを共有することを意味します。通常このモードは、SSLが通信のすべてではなく一部で要求されている場合に、同じコンテキスト・パスのHTTPサイトとHTTPSサイトの間でWebアプリケーションを共有するために使用します。すべての情報ではなく重要な情報のみを暗号化することで、パフォーマンスが向上します。

    HTTPS Webアプリケーションがsharedに設定されている場合は、セッションの追跡には、SSL証明書ではなくCookieが使用されます。SSL証明書は、追跡する各証明書の保存に50Kを使用して、セッションのタイムアウト前にメモリー不足の問題が発生する場合があるため、Cookieの方が利点があります。CookieはWebアプリケーションのセキュリティを低下させますが、一部のブラウザで正常にサポートされていない、SSLセッションのタイムアウトなどの問題を回避するためには必要になります。

    関連項目

    • Webサイト間のWebアプリケーションの共有については、『Oracle Containers for J2EE構成および管理ガイド』を参照してください。

     

  3. デフォルト・ポートを使用せずにshared="true"を設定する場合は、Cookieドメインを設定します。クライアントが異なるポートを介してWebサーバーと対話する場合は、Cookieは各ポートが独立したWebサイトを示すものとみなします。HTTPに対して80、HTTPSに対して443の各デフォルト・ポートを使用する場合は、クライアントはこれらを同じWebサイトの異なる2つのポートとみなし、1つのCookieのみを作成します。ただし、デフォルト以外のポートを使用する場合は、クライアントはこれらのポートを同一のWebサイトの独立した構成要素とみなし、Cookieドメインを指定していない場合はポートごとにCookieを作成します。

    Cookieドメインは、DNSドメイン内の複数のサーバーに対するクライアントの通信を追跡します。HTTPおよびHTTPSを使用する共有環境に対してデフォルト以外のポートを使用する場合は、アプリケーションのorion-web.xmlファイルの<session-tracking>要素内で、cookie-domain属性を設定します。cookie-domain属性には、提供されているDNSドメイン名のうち、最低2つのコンポーネントを指定します。

    <session-tracking cookie-domain=".oracle.com" />
    
    
  4. 使用する暗号スイートを指定します。暗号スイートは、セキュリティ・アルゴリズムと鍵のサイズを定義する複数の暗号化仕様を組み合せたものです。(これはサーバー側での暗号スイートの設定であり、第16章「クライアント接続用Oracleセキュリティ」で説明するHTTPClientの設定とは異なります。)次の例のように、secure-web-site.xml内の<ssl-config>要素のcipher-suites属性を指定します。

    <ssl-config keystore="your_keystore" keystore-password="your_password" 
                cipher-suites="SSL_RSA_WITH_RC4_128_SHA,
                               SSL_RSA_WITH_RC4_128_MD5,..." />
    
    

    これは、暗号スイートをカンマで区切ったリストです。この属性を省略すると、次のURLにある参考ドキュメントで「enabled by default」として指定されている一連の暗号スイートが使用されます。

    http://java.sun.com/j2se/1.4.2/docs/guide/security/jsse/
    JSSERefGuide.html

    例15-1    クライアント認証でのHTTPS通信

次の例では、クライアント認証でHTTPSによる安全な通信を実行できるWebサイトを構成しています。

<web-site display-name="OC4J Web Site" protocol="http" port="4443" secure="true" >
   <default-web-app application="default" name="defaultWebApp" />
   <access-log path="../log/default-web-access.log" />
   <ssl-config keystore="../keystore" keystore-password="welcome" 
              needs-client-auth="true" />
</web-site>

太字の部分のみが、セキュリティ関連の記述です。スタンドアロンOC4JでのHTTP通信の場合、protocolの値は安全な通信を使用するかどうかにかかわらず、常にhttpになります。protocolの値がhttpsecure="false"の場合は、HTTPプロトコルを示し、httpsecure="true"の場合は、HTTPSプロトコルを示します。

needs-client-authフラグを指定すると、OC4Jは接続時にクライアント証明連鎖をリクエストします。OC4Jがクライアントのルート証明書を認識すると、クライアントは受け入れられます。

<ssl-config>要素で指定するキーストアは、HTTPおよびSSLを介してOC4Jへの接続の認可を受ける任意のクライアントの証明書が格納されている必要があります。

Oracle HTTP Serverを使用しないOPMN管理OC4JでのSSLの使用

OC4JがOPMNによって管理され、OC4J自体がWebリスナーとして使用される場合(つまりOracle HTTP Serverを使用しない場合)は、HTTPSを使用してクライアントとOC4J間のSSL通信がサポートされます(前述のスタンドアロンOC4Jのシナリオと同様)。HTTPSをサポートするには、OPMNも構成する必要があります。

この項では、このOPMN管理のシナリオでSSLを使用する方法について説明します。これは次の手順で行います。

  1. OC4JのSSL用構成(Oracle HTTP Serverを使用しないシナリオ)

  2. HTTPSをサポートするためのOPMNの構成(Oracle HTTP Serverを使用しないシナリオ)

OC4JのSSL用構成(Oracle HTTP Serverを使用しないシナリオ)

Oracle HTTP Serverを使用しないOPMN管理環境において、SSLを使用できるようにOC4Jを構成する方法は、「スタンドアロンOC4JでのSSLの使用」で説明しているスタンドアロンOC4Jの構成方法とほぼ同じです。詳細はこの項を参照してください。

  1. キーストアを作成します。

  2. secure-web-site.xml(規約上、この名前を使用)を作成します。(必要に応じて、default-web-site.xmlから内容をコピーします。)

  3. 次の要素を使用して、secure-web-site.xmlを更新します。

    1. <web-site>要素にsecure="true"を追加して、この要素を更新します。通常、OPMN管理環境では、port="0"設定で指定されるように、OPMNに従ってポートが選択されます。protocol="http"を使用します。(protocol="http"設定とsecure="true"を組み合せることで、HTTPSが使用されます。)

      <web-site port="0" secure="true" protocol="http" 
                display-name="Default OracleAS Containers for J2EE Web Site" >
         ...
      </web-site>
      
      

      (必要に応じて、display-name設定も変更する必要があります。)

    2. <web-site>の下に<ssl-config>要素を追加し、keystorekeystore-password属性を使用して、キーストアの場所とパスワードを定義します。

    3. 変更結果をsecure-web-site.xmlに保存します。

    次に例を示します。

    <web-site display-name="OC4J Web Site" protocol="http" port="0" 
              secure="true" >
       <default-web-app application="default" name="defaultWebApp" root="/j2ee" />
       <access-log path="../log/default-web-access.log" />
       <ssl-config keystore="../keystore" keystore-password="welcome" />
    </web-site>
    
  4. server.xmlが、secure-web-site.xmlを参照しているかどうかを確認します。

  5. OC4Jを停止してから再起動し、secure-web-site.xmlを初期化します。


    注意

    • このWebサイトのXMLファイルの設定をオーバーライドしないようにOPMNを構成するには、ここでポート0のかわりに、実際に使用するポートを指定します。

    • Oracle HTTP Serverを使用しないOC4J環境でCLIENT-CERT認証モードを使用するには、needs-client-auth="true"設定が必要です。関連情報は、「クライアント認証の要求」を参照してください。

     

HTTPSをサポートするためのOPMNの構成(Oracle HTTP Serverを使用しないシナリオ)

Oracle HTTP Serverを使用しないOPMN管理環境のOC4JでSSLを使用するには、HTTPSをサポートするようにOPMNを構成する必要があります。ファイルORACLE_HOME/opmn/conf/opmn.xmlを、次のように更新します。

  1. コンポーネントID OC4J下で、セキュリティ・パラメータを構成します(Wallet情報)。

    <ias-component id="OC4J">
       ...
       <category id="security-parameters">
          <data id="wallet-file" value="file:walletfile"/>
          <data id="wallet-password" value="pwd"/>
       </category>
       ...
    </ias-component>
    
    
  2. 同じくコンポーネントID OC4J下で、Webサイトに対してHTTPSプロトコルを指定します。

    <ias-component id="OC4J">
       ...
       <port id="secure-web-site" range="12501-12600" protocol="https"/>
       ...
    </ias-component>
    

    関連項目

    • OPMNおよびopmn.xmlの詳細は、『Oracle Process Manager and Notification Server管理者ガイド』を参照してください。

     

Oracle HTTP Serverを使用するOPMN管理OC4JでのSSLの使用

OC4JがOPMNによって管理され、かつOracle HTTP ServerがWebリスナーとして使用されるOracle Application Server環境では、OC4JがAJPS(セキュアなバージョンのApache JServ Protocol)を使用して、Oracle HTTP ServerとOC4J間のSSL通信をサポートします。この項では、このシナリオでSSLを使用する方法について説明します。これは次の手順で行います。

  1. OC4JのSSL用構成(Oracle HTTP Serverを使用するシナリオ)

  2. AJP over SSLの構成

この項の最後に、サンプルの構成ファイルを示します。


注意

Oracle Application Server 10.1.3.xの実装では、Oracle HTTP Serverとクライアント間の通信に対してSSLがデフォルトで有効になります。特別な手順は不要です。これは、OC4JとOracle HTTP Server間でのSSLの使用に関するこの項での説明とは無関係です。 


関連項目

  • Oracle HTTP ServerでのSSLの使用についての関連情報(クライアント認証を有効にするための構成のカスタマイズ方法も含む)は、『Oracle HTTP Server管理者ガイド』を参照してください。

  • SSLを利用するための追加Oracle Application Serverコンポーネントの構成方法は、『Oracle Application Server管理者ガイド』を参照してください。

 

OC4JのSSL用構成(Oracle HTTP Serverを使用するシナリオ)

Oracle Application Server環境において、SSLを使用できるようにOC4Jを構成する方法は、「スタンドアロンOC4JでのSSLの使用」で説明している、スタンドアロンOC4Jの構成方法とほぼ同じです。詳細はこの項を参照してください。

  1. キーストアを作成します。

  2. secure-web-site.xml(規約上、この名前を使用)を作成します。必要に応じて、default-web-site.xmlから内容をコピーします。

  3. 次の要素を使用して、secure-web-site.xmlを更新します。

    1. <web-site>要素にsecure="true"を追加して、この要素を更新します。通常、Oracle Application Server環境では、自動的に追加されるport="0"設定で指定されるように、OPMNに従ってポートが選択されます。また、Oracle Application Server環境のデフォルトの設定であるprotocol="ajp13"を使用します。(protocol="ajp13"設定とsecure="true"を組み合せることで、AJPSが使用されます。)

      <web-site port="0" secure="true" protocol="ajp13" 
                display-name="Default OracleAS Containers for J2EE Web Site" >
         ...
      </web-site>
      
      

      (必要に応じて、display-name設定も変更する必要があります。)

    2. <web-site>の下に<ssl-config>要素を追加し、keystorekeystore-password属性を使用して、キーストアの場所とパスワードを定義します。

    3. 変更結果をsecure-web-site.xmlに保存します。

    次に例を示します。

    <web-site display-name="OC4J Web Site" protocol="ajp13" port="0" 
              secure="true" >
       <default-web-app application="default" name="defaultWebApp" root="/j2ee" />
       <access-log path="../log/default-web-access.log" />
       <ssl-config keystore="../keystore" keystore-password="welcome" />
    </web-site>
    
    

    Oracle HTTP Serverを介する通信の場合、protocolの値は安全な通信を使用するかどうかにかかわらず、常にajp13になります。protocolの値がajp13secure="false"の場合は、AJPプロトコルを示し、ajp13secure="true"の場合は、AJPSプロトコルを示します。

  4. server.xmlが、secure-web-site.xmlを参照しているかどうかを確認します。

  5. OC4Jを停止してから再起動し、secure-web-site.xmlを初期化します。


    重要

    OC4J 10.1.3実装では、単一のAJP/AJPS Webサイトのみがサポートされます。たとえば、AJP Webサイトを構成するdefault-web-site.xmlファイルと、AJPS Webサイトを構成するsecure-web-site.xmlファイルを同時に使用することはできません。 



    注意

    • このWebサイトのXMLファイルの設定をオーバーライドしないようにOPMNを構成するには、ここでポート0のかわりに、実際に使用するポートを指定します。

    • Oracle HTTP ServerをWebリスナーとするOracle Application Server環境では、OC4Jの<ssl-config>要素のneeds-client-auth属性は、ブラウザからのSSL認証に関係しません。この認証は、クライアントとOracle HTTP Server間の取決めによって行われます。ただし、OC4JでOracle HTTP ServerからのSSL認証を必要とする場合は、この属性が関係します。関連情報は、「クライアント認証の要求」を参照してください。

     

AJP over SSLの構成

この項では、AJP over SSLを使用する場合の次の状況について説明します。

OC4JとOracle HTTP Server間のAJPSの構成

OC4JとOracle HTTP Server間のAJPSを構成するには、次の手順を実行します。

  1. Oracle Wallet Managerを使用して、Oracle HTTP Serverで使用する自動ログインWallet(SSO Walletとも呼ばれる)を作成します。

  2. keytoolユーティリティを使用し、証明書をキーストアからエクスポートします。(前述の、OC4JのSSL用構成手順により、OC4Jにキーストアを作成済であるものとします。)

    % keytool -export -file cert_file_name -keystore keystore_file_name \
              -storepass=password
    
    

    ここで、cert_file_nameは、生成される証明書の目的ファイル名、keystore_file_nameは、作成済のキーストアの名前です。コマンドラインでstorepassを省略し、かわりにパスワードの入力が要求されるようにすることもできます。コマンドが成功すると、証明書ファイル名を確認するメッセージが表示されます。

  3. Oracle Wallet Managerを使用して、生成された証明書をWalletにインポートします。「操作」の下の「信頼できる証明書のインポート」を使用します。

  4. Oracle HTTP Serverで、mod_oc4j.confファイル内のSSL設定が安全な通信に適した値に設定されていることを確認します。SSLを有効にし、手順1で作成したWalletへのパスを指定する必要があります(ここにWalletのパスワードを指定することは不要です)。

    Oc4jEnableSSL on
    Oc4jSSLWalletFile wallet_path
    
    

    wallet_path値は、ファイル名を除くWalletへのディレクトリ・パスです。(Walletファイル名は判明済です。)

    関連項目

    • mod_oc4j.confの詳細は、『Oracle HTTP Server管理者ガイド』を参照してください。

    • 手順1および3に関連するWalletと証明書の管理の詳細は、『Oracle Application Server管理者ガイド』を参照してください。

     

AJPSをサポートするためのOPMNの構成(Oracle HTTP Serverを使用するシナリオ)

Oracle Application Server環境では、OPMNの構成手順も実行する必要があります。ファイルORACLE_HOME/opmn/conf/opmn.xmlを、次のように更新します。

  1. コンポーネントID OC4J下で、セキュリティ・パラメータを構成します(Wallet情報)。

    <ias-component id="OC4J">
       ...
       <category id="security-parameters">
          <data id="wallet-file" value="file:walletfile"/>
          <data id="wallet-password" value="pwd"/>
       </category>
       ...
    </ias-component>
    
    
  2. 同じくコンポーネントID OC4J下で、Webサイトに対してAJPSプロトコルを指定します。

    <ias-component id="OC4J">
       ...
       <port id="secure-web-site" range="12501-12600" protocol="ajps"/>
       ...
    </ias-component>
    
    
  3. コンポーネントID HTTP_Server下で、SSLがデフォルトのssl-enabled設定により有効になっているかどうかを確認します。(ssl-disabledの設定では、SSLは無効になっています。)

    <ias-component id="HTTP_Server">
       ...
       <data id="start-mode" value="ssl-enabled"/>
       ...
    </ias-component>
    

    関連項目

    • OPMNおよびopmn.xmlの詳細は、『Oracle Process Manager and Notification Server管理者ガイド』を参照してください。

     

SSL用構成ファイルのサンプル

この項では、先行する各項で説明した構成に関連したサンプルを示します。

<web-site>要素のサンプル

secure-web-site.xmlファイル内の<web-site>要素のサンプルを示します。

<web-site port="0" protocol="ajp13" secure="true">
   <default-web-app application="default" name="defaultWebApp" root="/j2ee" />
   <web-app application="default" name="dms" root="/dmsoc4j" />
   ...
   <ssl-config
        keystore="C:\demotest\j2eetest\tsrc\shiphome\sslfiles\KEYSTORE\keystore"
        keystore-password="welcome1"/>
</web-site>
サンプルのmod_oc4j.confファイル

サンプルのmod_oc4j.confファイルを示します。

<IfModule mod_oc4j.c>
 
    Oc4jEnableSSL on
    Oc4jSSLWalletFile C:\demotest\j2eetest\tsrc\shiphome\sslfiles\ssl.wlt\default
    Oc4jSSLWalletPassword welcome1
 
    <Location /oc4j-service>
        SetHandler oc4j-service-handler
        Order deny,allow
        Deny from all
        Allow from localhost ani-pc.us.oracle.com ani-pc
    </Location>
 
</IfModule>
サンプルのopmn.xmlファイル

opmn.xmlに含まれる、コンポーネントID OC4JおよびHTTP_Serverの構成のサンプルを示します。

<ias-component id="OC4J">
   <process-type id="home" module-id="OC4J" status="enabled">
      <module-data>
         <category id="start-parameters">
            <data id="java-options" value="-Xrs -server
               -Djava.security.policy=$ORACLE_HOME/j2ee/home/config/java2.policy
               -Djava.awt.headless=true"/>
         </category>
         <category id="security-parameters">
            <data id="wallet-file" value=
              "file:C:/demotest/j2eetest/tsrc/shiphome/sslfiles/ssl.wlt/default"/>
            <data id="wallet-password" value="welcome"/>
         </category>
         <category id="stop-parameters">
            <data id="java-options" value=
              "-Djava.security.policy=$ORACLE_HOME/j2ee/home/config/java2.policy
               -Djava.awt.headless=true"/>
         </category>
      </module-data>
      <start timeout="600" retry="2"/>
      <stop timeout="120"/>
      <restart timeout="720" retry="2"/>
      <port id="secure-web-site" range="12501-12600" protocol="ajps"/>
      <port id="rmi" range="3201-3300"/>
      <port id="jms" range="3701-3800"/>
      <process-set id="default_island" numprocs="1"/>
   </process-type>
</ias-component>

<ias-component id="HTTP_Server">
   <process-type id="HTTP_Server" module-id="OHS">
      <module-data>
         <category id="start-parameters">
            <data id="start-mode" value="ssl-enabled"/>
         </category>
      </module-data>
      <process-set id="HTTP_Server" numprocs="1"/>
   </process-type>
</ias-component>

クライアント認証の要求

この項では、サーバーに対するクライアントのSSL認証について、特にOC4Jのneeds-client-auth属性を使用するOC4Jクライアント認証モードに重点を置いて説明します。

ここで検討するシナリオは次のとおりです。

OC4Jクライアント認証モードの概要

OC4Jは、クライアント認証モードをサポートします。このモードでは、OC4Jサーバーが、クライアントから(またはOracle Application Server環境ではOracle HTTP Serverから)のSSL認証を明示的に要求します。クライアントは、接続時にOC4Jからのリクエストに従って、デジタル証明書で自己認証する必要があります。

クライアントとOC4J間の認証を使用した安全な通信中に、次の機能が実行されます。

次の例のように、secure-web-site.xml内の<ssl-config>要素のneeds-client-auth属性を通じてクライアント認証をリクエストし、次に示す手順を実行します。

<web-site ... secure="true" ... >
   ...
   <ssl-config keystore="path_and_file" keystore-password="pwd" 
               needs-client-auth="true" />
</web-site>

  1. OC4Jが信頼する証明書は、トラスト・ポイントと呼ばれます。クライアントからの連鎖のうちトラスト・ポイントにする証明書を決定します。このトラスト・ポイントを使用して証明書の発行を制御できること、または認証局を発行者として信頼できることを確認します。

  2. クライアント証明書の認証用に、中間またはルート証明書をトラスト・ポイントとしてサーバーのキーストアにインポートします。


    注意

    OC4Jが特定のトラスト・ポイントを受け入れないようにする場合は、これらのトラスト・ポイントがキーストアにないことを確認してください。 


  3. クライアント証明書の作成手順を実行します。「スタンドアロンOC4JでのSSLの使用」を参照してください。クライアント証明書には、サーバーにインストールされている中間またはルートの証明書が含まれます。他の認証局を信頼する場合は、その認証局から証明書を取得します。

  4. 証明書をクライアント上のファイルに保存します。

  5. クライアントが安全な接続を開始できるようにするための証明書を提供します。

OC4Jは、安全な通信のために、クライアント・エンティティをクライアントIDに従って受け入れるか拒否します。クライアントのルート証明書が認識されると、クライアントは受け入れられます。secure-web-site.xml内の<ssl-config>要素で指定するキーストアには、OC4Jへの接続の認可を受ける任意のクライアントの証明書が格納されている必要があります。

クライアントからの証明連鎖では、トラスト・ポイントはキーストア内の証明書と一致するとしてOC4Jで検出される最初の証明書です。この信頼関係は、次の3つの方法のいずれかで確立されます。

OC4Jでは、捏造された証明書を防ぐために、トラスト・ポイントを含む証明連鎖全体が有効かどうかが検証されます。

OC4Jに対するクライアント認証

スタンドアロンOC4JまたはOracle HTTP Serverを使用しないOPMN管理OC4JでOC4J HTTPリスナーが使用される場合は、secure-web-site.xml内の<ssl-config>要素でneeds-client-auth="true"を設定することにより、クライアント(エンドユーザー)からのSSL認証をリクエストできます。実際に、OC4JリスナーでCLIENT-CERT認証を使用するには、この設定が必要です。

証明書を使用するには、証明書をクライアント・ブラウザのセキュリティ領域に設定するか(クライアントがブラウザの場合)、HTTPS接続の開始時にクライアント証明書および証明連鎖をプログラムで提示します(Javaクライアントの場合)。

追加情報は、前項の「OC4Jクライアント認証モードの概要」を参照してください。

関連項目

 

Oracle Application ServerでのOC4Jに対するOracle HTTP Server認証

Oracle Application Server環境では、Oracle HTTP ServerがOC4Jに対するクライアントとして動作します。このモードでのクライアント認証の場合、Oracle HTTP Serverは独自の証明書を持ち、その証明書とルート証明書で終わる証明連鎖を送信して自己認証を行う必要があります。OC4Jは、クライアントに至る信頼の連鎖を確立するときに、指定のリストからルート証明書のみを受け入れるように構成できます。

このシナリオでは、「OC4Jクライアント認証モードの概要」での説明のために、Oracle HTTP Serverをクライアントとみなします。

Oracle HTTP ServerとOC4J間の安全な通信には、HTTPSのかわりにAJPS(セキュアなApache JServ Protocol)が使用されます。

Oracle HTTP Serverに対するクライアント認証

Oracle Application Server環境でクライアント(エンドユーザー)からOracle HTTP Serverに対するSSL認証をリクエストする場合は、OC4Jが関係せず、その構成(needs-client-auth属性を含む)も無関係です。これには、クライアントとOracle HTTP Server間の取決めが必要となります。Oracle HTTP ServerでのSSLの使用方法(クライアント認証を有効にするための構成のカスタマイズ方法も含む)の詳細は、『Oracle HTTP Server管理者ガイド』を参照してください。

クライアント・ブラウザのセキュリティ領域に証明書を設定するか(クライアントがブラウザの場合)、HTTPS接続の開始時にクライアント証明書および証明連鎖をプログラムで提示します(Javaクライアントの場合)。

SSLのトラブルシューティングとデバッグ

この項では、いくつかの一般的なSSLエラーと、その原因および解決策について説明します。その後に、一般的なSSLのデバッグ方法について簡単に説明します。

一般的なSSLエラーと解決策

SSL証明書の使用時には、次のエラーが発生する場合があります。

Keytool Error: java.security.cert.CertificateException: Unsupported encoding

原因:  後続の空白があります。これは、keytoolユーティリティでは使用できません。

処置:  後続の空白をすべて削除します。それでもエラーが発生する場合は、証明書応答ファイルに新規の1行を追加します。

Keytool Error: KeyPairGenerator not available

原因:  旧バージョンのJDKからkeytoolユーティリティを使用していると思われます。

処置:  システムにある最新JDKのkeytoolユーティリティを使用してください。最新JDKを使用していることを確認するには、このJDKのフルパスを指定します。

Keytool Error: Failed to establish chain from reply

原因:  keytoolユーティリティでは、キーストア内でルートCAの証明書が見つからないため、サーバーの鍵から信頼できるルート認証局への証明連鎖を構築できません。

処置:  次のコマンドを実行します。

% keytool -keystore mykeystore -import -alias cacert -file cacert.cer 
  (keytool -keystore mykeystore -import -alias intercert -file inter.cer) 

中間CAのkeytoolユーティリティを使用する場合は、次のコマンドを実行します。

% keytool -keystore mykeystore -genkey -keyalg RSA -alias serverkey 
% keytool -keystore mykeystore -certreq -file my.host.com.csr 

証明書署名要求(CSR)から証明書を取得して、次のコマンドを実行します。

% keytool -keystore mykeystore -import -file my.host.com.cer -alias serverkey

No available certificate corresponds to the SSL cipher suites that are enabled

原因:  証明書に誤りがあります。

処置:  問題を特定し、訂正します。

一般的なSSLのデバッグ方法: javax.net.debugプロパティ

javax.net.debugプロパティを使用して、Java Secure Socket Extension(JSSE)実装からSSL接続に関する詳細なデバッグ情報を表示できます。オプション・リストを取得するには、OC4Jを次のように起動します。

これには、ブラウザ・リクエスト・ヘッダー、サーバーHTTPヘッダー、サーバーHTTPボディ、コンテンツの長さ(暗号化の前後)およびSSLバージョンの表示が含まれます。

OC4JでのORMISの有効化

ORMI over SSL(ORMIS)は、OC4Jではデフォルトで無効になっています。これは、ORMISを使用する前にクライアントおよびサーバーのキーストアまたはOracle Walletを作成することが推奨されているためです。

この項では、スタンドアロン環境またはOracle Application Serverにおけるクラスタ環境のOC4Jで、ORMISを有効にする構成について説明します。この構成手順を実行すると、これまでormi:プロトコルを使用していたすべてのケースで、ormis:プロトコルを使用できるようになります。

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

スタンドアロンOC4JでのORMISの構成

ORMIS構成および関連するRMI構成では、各OC4Jインスタンス上のserver.xmlファイルおよびrmi.xmlファイルの更新が必要になります。この項の内容は次のとおりです。

RMI構成ファイルの場所に関するserver.xmlの構成

OC4JインスタンスでORMISを有効にするには、最初に、OC4Jサーバー構成ファイルserver.xmlに、OC4J RMI構成ファイルrmi.xmlへのパスを指定する<rmi-config>要素が含まれるかどうかを確認します。

rmi.xmlへのパスは次のように指定します。

<rmi-config path="rmi_path" /> 

server.xmlファイルおよびrmi.xmlファイルのどちらも、通常ORACLE_HOME/j2ee/home/configディレクトリにあるため、rmi_pathの値は、通常./rmi.xmlになります。

関連項目

  • server.xmlの詳細は、『Oracle Containers for J2EE構成および管理ガイド』を参照してください。

 

rmi.xmlのORMIS用構成

ORMISを使用するには、次の手順に従い、各OC4Jインスタンス上のrmi.xmlにSSL構成を定義します。

  1. <rmi-server>要素のssl-port属性を使用して、SSLリスナー・ポートを指定します。次に例を示します。

    <rmi-server ... port="23791" ssl-port="23943">
       ...
    </rmi-server>
    
    

    (ここでは、ORMIリスナー・ポートの23791への設定も行われています。)


    注意

    デフォルトのRMIポートは23791です。デフォルトのORMISポートは23943です。 


  2. <rmi-server>要素の下に<ssl-config>サブ要素を追加します。これは、キーストア構成用であり、任意の値を指定でき、OC4J再起動時には(セキュアでないORMIリスナーに加えて)ORMISリスナーが起動されます。ORMISを有効にする方法には、次に説明するように2つあります。1つはキーストアおよびパスワードを使用する方法であり、もう1つは匿名暗号スイートを使用する方法です。

    関連項目

    • rmi.xmlの追加情報は、『Oracle Containers for J2EEサービス・ガイド』を参照してください。

     

キーストアおよびパスワードの使用

次の例では、SSLポートを23943に設定し、Oracle Walletベースの証明書を使用するようにOC4Jを構成しています(同時にRMIログ・ファイルを指定しています)。

<rmi-server xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation=
               "http://xmlns.oracle.com/oracleas/schema/rmi-server-10_0.xsd"
            port="23791" ssl-port="23943">
   <ssl-config keystore="/wallets/wallet-server-a/ewallet.p12"
               keystore-password="serverkey-a" />
   ...
   <log>
      <file path="../log/rmi.log" />
   </log>
</rmi-server>

keystore属性の値には、キーストアの場所(絶対パス、またはWebサイトのXMLファイルが置かれているORACLE_HOME/j2ee/home/configに対する相対パス)およびファイル名を指定します。

Oracle WalletのかわりにJavaキーストアを使用するには、<ssl-config>要素を次の例のように構成します。

<ssl-config keystore="/keystores/keystore_a.jks" keystore-password="serverkey-a"/>

キーストアおよびパスワードを使用する場合、サーバーのキーストアには、ORMISを介してOC4Jへの接続認可を受ける任意のクライアントの署名済証明書、またはクライアントのルートCA発行の証明書が格納されている必要があります。

匿名暗号スイートの使用

ORMISを有効にするには、匿名暗号スイートも使用できます。この場合、<ssl-config>要素から、keystoreおよびkeystore-password属性を削除します。

<ssl-config />

このモードでは、任意のORMISクライアントが、証明書のチェックなしでサーバーに接続できます。


重要

このモードは、クライアントがトランスポート・レベルでの認証を受けるかどうかを問わずSSL通信を許可するため、慎重に使用してください。 


ORMIS有効化時のORMIの無効化(オプション)

スタンドアロンOC4Jでは、ORMISを有効にした場合はORMIを無効にできます。これを行うには、ORMIポートを-1に設定します。

<rmi-server ... port="-1" ssl-port="23943">
   <ssl-config keystore="keystore" keystore-password="password" />
   ...
</rmi-server>

この構成を使用すると、OC4Jの再起動時に、セキュアでないORMIリスナーが無効になります。


注意

これは、OPMNによって管理されるOC4Jインスタンスではサポートされません。 


Oracle Application Server環境におけるOC4JでのORMISの構成

OPMNによって管理されるクラスタOracle Application Server環境でORMISを有効にするには、次の手順を実行します。

  1. 一般的な手順として、「RMI構成ファイルの場所に関するserver.xmlの構成」および「rmi.xmlのORMIS用構成」で説明されている、スタンドアロンOC4Jに対する手順を実行します。そこに含まれる手順のうち、rmi.xml<rmi-server>要素にssl-portを設定する手順は実行しません。これはOPMN管理環境では不要です。OPMN管理RMISポートが、rmi.xmlssl-port属性を物理的にオーバーライドしてしまうためです。

  2. opmn.xmlファイルにおいて、クラスタに属するOracle Application Serverインスタンスごとに、<port>要素を次のようにrmisのポート範囲付きで追加します。

    <ias-component id="OC4J">
       <process-type id="home" module-id="OC4J" status="enabled">
          <module-data>
             <category id="start-parameters">
                <data id="java-options" value="-server
                    -Djava.security.policy=$ORACLE_HOME/j2ee/home/config/java2.policy
                    -Djava.awt.headless=true
                    -Dhttp.webdir.enable=false"/>
             </category>
             <category id="stop-parameters">
                <data id="java-options" value=
                   "-Djava.security.policy=$ORACLE_HOME/j2ee/home/config/java2.policy 
                    -Djava.awt.headless=true -Dhttp.webdir.enable=false"/>
             </category>
          </module-data>
          <start timeout="600" retry="2"/>
          <stop timeout="120"/>
          <restart timeout="720" retry="2"/>
          <port id="default-web-site" range="12501-12600" protocol="ajp"/>
          <port id="rmi" range="12401-12500"/>
          <port id="rmis" range="12701-12800"/>
          <port id="jms" range="12601-12700"/>
          <process-set id="default_group" numprocs="1"/>
       </process-type>
       ...
    </ias-component>
    

    関連項目

    • OPMNおよびopmn.xmlファイルの一般情報は、『Oracle Application Server管理者ガイド』を参照してください。

     

ORMISアクセス制限の構成

ORMISは、ORMIと同様に、アクセス制御リスト(ACL)マスクを設定することで、受信IPアクセスを制限する機能をサポートします。この設定はrmi.xml内の<access-mask>要素、およびそのサブ要素である<host-access><ip-access>を介して行います。

アクセス制御には、除外型と包含型があります。

次の例では、除外モードを構成して、localhostおよび192.168.1.0へのアクセスのみを許可しています。(255.255.255.0は適用されるサブネット・マスクです。)

<rmi-server xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation=
                "http://xmlns.oracle.com/oracleas/schema/rmi-server-10_0.xsd"
            port="23791" ssl-port="23943">

   <ssl-config keystore="../wallets/wallet-server-a/ewallet.p12"
               keystore-password="serverkey-a" />

   <access-mask default="deny">
      <host-access domain="localhost" mode="allow"/>
      <ip-access ip="192.168.1.0" netmask="255.255.255.0" mode="allow"/>
   </access-mask>

   ...

</rmi-server>

関連項目

  • orion-web.xmlでも同じ機能でサポートされている<access-mask>要素の追加情報は、『Oracle Containers for J2EEサーブレット開発者ガイド』を参照してください。

 

ORMISを使用するためのクライアントの構成

この項では、ORMISを使用するためのクライアント・サイドの構成について説明します。この項の内容は次のとおりです。

適切なJavaネーミング・プロバイダURLの指定

スタンドアロンOC4J環境のアプリケーションの場合は、システムおよびアプリケーションのURIを定義するjava.naming.provider.url環境プロパティの設定に、ormisプロトコルを指定します。

java.naming.provider.url=ormis://hostname/appname

Oracle Application Server(OPMN管理)環境のアプリケーションの場合は、opmn:ormisプロトコルを指定します。

java.naming.provider.url=opmn:ormis://hostname/appname


注意

URLには、ポート番号を含める必要はありません。使用されるポートは、プロトコルによって決定されます。 


キーストアおよびパスワードの指定

EJB over ORMISをコールするには、クライアント・サイドで次の指定(必要なもののみ)を行う必要があります。

これらの設定は3箇所で指定できます。優先度の高い順に記述します。

HTTPSを介したORMIトンネリングの有効化

『Oracle Containers for J2EEサービス・ガイド』のRMIに関する章では、HTTPを介したORMIトンネリングの構成方法が説明されています。

SSL機能を使用するために、HTTPSを介したORMIトンネリングを構成することも可能です。基本的な手順は次のとおりです。

  1. 「スタンドアロンOC4JでのSSLの使用」または「Oracle HTTP Serverを使用するOPMN管理OC4JでのSSLの使用」のいずれか該当する方の説明に従って、SSLの構成を完了させます。

    スタンドアロンOC4Jの場合は、ここでキーストアを作成し、secure-web-site.xmlファイルを構成します。

    Oracle Application Server環境の場合は、ここでキーストアを作成してsecure-web-site.xmlファイルを構成し(記載されているように、スタンドアロンOC4Jと比べて一部異なっています)、必要に応じてAJP over SSLを構成し、さらにHTTPを有効にしてSSLを使用するようにOPMNを構成します。Oracle HTTP Serverでは、SSLがデフォルトで有効になることに注意してください。

  2. クライアントを適切に構成します(「ORMISを使用するためのクライアントの構成」で説明されている手順と並行して実行)。

    1. スタンドアロンOC4JまたはOracle Application Server環境のいずれかの場合は、システムおよびアプリケーションのURIを定義するjava.naming.provider.url環境プロパティの設定でormi:httpsプロトコルを指定します。

      java.naming.provider.url=ormi:https://hostname:https_port/appname
      
      

      スタンドアロンOC4Jの場合は、secure-web-site.xmlで指定されているようにhttps_portを指定します。「スタンドアロンOC4JでのSSLの使用」を参照してください。Oracle Application Server環境では、https_portにOracle HTTP Server SSLポートを指定します。

    2. 「キーストアおよびパスワードの指定」の説明に従って、キーストアとパスワードを構成します。

次のクライアント・コードSnippetでは、ormi:httpsプロトコルが指定されたURLが使用されています。

    private static Context getInitialContext() throws NamingException {
        Hashtable env = new Hashtable();
        env.put( Context.INITIAL_CONTEXT_FACTORY,
          "oracle.j2ee.naming.ApplicationClientInitialContextFactory" );
        env.put( Context.SECURITY_PRINCIPAL, "oc4jadmin" );
        env.put( Context.SECURITY_CREDENTIALS, "welcome1" );
        env.put(Context.PROVIDER_URL, "ormi:https://localhost:443/apache-ejb");
        env.put("oc4j.keyStoreLoc",
          "C:/product/iasSOA0622/Apache/Apache/conf/ssl.wlt/default/ewallet.p12");
        env.put("oc4j.keyStorePass", "welcome");
        
        return new InitialContext( env );
    }

戻る 次へ
Oracle
Copyright © 2003, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引