ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Fusion Middlewareの管理
12c (12.1.2)
E47968-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

6 Oracle Fusion MiddlewareでのSSLの構成

Oracle Fusion Middlewareを構成し、Oracle Fusion Middlewareのコンポーネント間の通信をSSLで保護することができます。SSLは通信を保護するための業界標準です。Oracle Fusion MiddlewareではSSLバージョン3に加えて、TLSバージョン1をサポートしています。


関連項目:

第7章「SSL自動化ツールの使用」。SSL自動化ツールを使用すると、ドメイン固有のCAを使用して複数のコンポーネントにSSLを構成できます。


この章では、SSLの概要と、Oracle Fusion MiddlewareコンポーネントおよびアプリケーションでSSLを使用する方法について説明します。これらの項目が含まれます。


注意:

Oracle WebLogic Server内でSSL接続を構成する場合、ここでの手順を実行するかわりに、この章で紹介しているOracle WebLogic Serverの関連ドキュメントを参照してください。


6.1 SSLのしくみ

この項では、基本的なSSLの概念について説明します。これらの項目が含まれます。

6.1.1 SSLの機能

SSLは、メッセージの暗号化、整合性および認証を提供することで、通信を保護します。SSL標準により、関係するコンポーネント(ブラウザやHTTPサーバーなど)は、どの暗号化、認証および整合性メカニズムを使用するかのネゴシエーションができます。

  • 暗号化を行うと、正当な受信者のみがメッセージを読むことができ機密が保持されます。SSLでは、様々な暗号化アルゴリズムを使用してメッセージを暗号化できます。各SSLセッションの開始時に行われるSSLハンドシェイク中、クライアントとサーバーは、どのアルゴリズムを使用するかのネゴシエーションを行います。SSLがサポートしている暗号化アルゴリズムには、AES、RC4、3DESなどがあります。

  • 整合性により、クライアントが送信したメッセージが改ざんされずに正当なサーバーに届きます。メッセージの整合性を確保するために、クライアントはハッシュ機能を使用してメッセージをダイジェストにハッシュし、このメッセージ・ダイジェストをサーバーに送信します。サーバーは、さらにこのメッセージをダイジェストにハッシュし、これらのダイジェストを比較します。SSLでは、2つの異なるメッセージから同じダイジェストをコンピュータで生成するのが不可能なハッシュ機能を使用しているため、サーバーでは2つのダイジェストが一致しない場合には、何者かによりメッセージが改ざんされたとみなすことができます。SSLがサポートしているハッシュ機能の1つに、SHA1があります。

  • 認証を使用すると、サーバーとクライアントは互いに相手の身元を確認できます。クライアントがSSLセッションを開始すると、サーバーは通常、サーバー自身の証明書をクライアントに送信します。証明書とは、VeriSignなどの信頼できる認証局によって発行されるデジタルIDです。第8章「キーストア、ウォレットおよび証明書の管理」では、証明書について詳細に説明しています。

    クライアントは、サーバー証明書内の証明連鎖を検証することで、サーバーが本物であることを確認します。サーバー証明書は、サーバー証明書に署名した認証局(CA)により保証されています。

    また、サーバーがクライアントの識別を認証する必要がある場合には、サーバーがクライアントに証明書の所持を要求することもできます。

6.1.2 秘密鍵と公開鍵の暗号化について

メッセージの整合性、認証および暗号化を提供するために、SSLでは秘密鍵と公開鍵の両方の暗号化を使用します。

秘密鍵の暗号化

対称鍵の暗号化では、通信を保護する目的で2者以上が共有する1つの秘密鍵が必要です。この鍵は、当事者間で送信された安全なメッセージを暗号化および復号化するために使用します。これを行うには、安全な方法で各当事者に鍵を事前に配布しておく必要があります。この方法における問題点は、鍵を安全に転送し、格納することが困難なことです。

SSLでは、各当事者は互いに認識している乱数を使用して秘密鍵を個別に計算します。次に、その秘密鍵を使用して暗号化したメッセージを送信します。

公開鍵の暗号化

公開鍵の暗号化による公開鍵/秘密鍵のペアおよび鍵配布のための安全な方法を採用することで、この問題は解決します。対応する秘密鍵の所有者のみが復号化できるメッセージは、自由に使用できる公開鍵によって暗号化できます。秘密鍵は、その他のセキュリティ資格証明とともに、Oracleウォレットなどの暗号化されたコンテナに安全に格納されます。

公開鍵アルゴリズムでは、メッセージの秘密が保証されます。しかし通信者間の識別が検証されないため、安全な通信は必ずしも保証されません。安全な通信を確立するには、メッセージの暗号化に使用される公開鍵が相手の受信者に実際に属していることを確認することが重要です。そうしないと、第三者が通信を傍受し、公開鍵のリクエストに割り込み、正当な鍵を独自の公開鍵に置き換えることが可能になります(介在者攻撃)。

そうした攻撃を避けるには、認証と呼ばれるプロセスにより、公開鍵の所有者を検証することが必要です。その際に、通信の両当事者により信頼された、認証局(CA)と呼ばれる第三者機関が、この認証プロセスを実行できます。

CAは、エンティティの名前、公開鍵および他のセキュリティ資格証明を含む公開鍵証明書を発行します。通常、このような資格証明には、CA名、CAの署名および証明書の有効日(開始日、終了日)が含まれています。

CAでは独自の秘密鍵を使用してメッセージを暗号化します。一方、そのメッセージの復号化には公開鍵が使用されるため、メッセージがCAによって暗号化されたものであるかどうかが確認されます。CA公開鍵は広く一般に知られているため、アクセスするたびに認証する必要はありません。このようなCA公開鍵はウォレットに格納されます。

6.1.3 キーストアおよびウォレット

Oracle Fusion Middlewareでは、ほとんどのコンポーネントで記憶域メカニズムとしてOracleウォレットが使用されます。Oracleウォレットは、証明書、信頼できる証明書、証明書リクエスト、秘密鍵などの資格証明を格納するコンテナです。Oracle Internet DirectoryなどのLDAPディレクトリやファイル・システムにOracleウォレットを格納できます。Oracleウォレットは、パスワードで保護することも自動ログインにもできます。

Oracle HTTP ServerではOracleウォレットが使用されます。Oracle HTTP ServerでのSSLの構成では、Oracleウォレットを設定および使用する必要があります。

他のコンポーネントはJKSキーストアまたはKSSキーストアを使用して鍵と証明書を保管するので、これらのコンポーネントのSSLの構成では、適切なキーストアを使用して設定する必要があります。

キーストアおよびウォレットの構成の詳細は、次を参照してください。

6.1.4 SSLセッションのしくみ

SSLプロトコルには、ハンドシェイク・フェーズとデータ転送フェーズという2つのフェーズがあります。ハンドシェイク・フェーズでは、サーバーおよびオプションでクライアントを認証し、データ転送フェーズで転送されるデータを保護するための暗号化鍵を設定します。

クライアントがサーバーへのSSL接続を要求すると、クライアントとサーバーはまずハンドシェイク・フェーズでメッセージを交換します(一般的なシナリオとしては、http://ではなくhttps://プロトコルを使用して、サーバーからページを要求するブラウザがあります。HTTPSプロトコルは、HTTPでSSLを使用することを示します)。

図6-1に、Webサーバーとブラウザ間の一般的なSSL接続用ハンドシェイク・メッセージを示します。この図では次の手順を示しています。

  1. クライアントは、サーバーにハロー・メッセージを送信します。

    メッセージには、クライアントがサポートしているアルゴリズムの一覧および鍵を生成するための乱数が含まれています。

  2. サーバーは、クライアントにハロー・メッセージを送信してレスポンスを返します。このメッセージには、次の内容が含まれています。

    • 使用するアルゴリズム。これは、クライアントが送信した一覧から、サーバーによって選択されます。

    • 鍵の生成に使用する乱数。

  3. サーバーは、クライアントに証明書を送信します。

  4. クライアントは、サーバーの証明書の妥当性、発行者CAおよびオプションでサーバーのホスト名がサブジェクトDNと一致するかどうかをチェックして、サーバーを認証します。クライアントはセッション・キャッシュのセッションIDを送信します。

  5. クライアントが乱数(プリマスタ・シークレット)を生成し、サーバーの公開鍵を使用して暗号化し、サーバーに送信します。

  6. サーバーは、秘密鍵を使用してメッセージを復号化し、プリマスタ・シークレットを取得します。

  7. クライアントとサーバーは、SSLセッションで使用される鍵を個別に計算します。

    これらの鍵は、互いに認識しているプリマスタ・シークレットと乱数に基づいて計算されるため、それぞれの相手には送信されません。鍵には次の内容が含まれています。

    • クライアントがサーバーへの送信前にデータを暗号化するために使用する暗号化鍵

    • サーバーがクライアントへの送信前にデータを暗号化するために使用する暗号化鍵

    • クライアントがデータのメッセージ・ダイジェストを作成するために使用する鍵

    • サーバーがデータのメッセージ・ダイジェストを作成するために使用する鍵

    暗号化鍵は、対称的です。つまり、データの暗号化と復号化には同じ鍵が使用されます。

  8. クライアントとサーバーは、相互にFinishedメッセージを送信します。これらは前の手順で生成した鍵を使用して送信される最初のメッセージ(最初の安全なメッセージ)です。

    Finishedメッセージには、各当事者が送信した以前のハンドシェイク・メッセージがすべて含まれています。各当事者は、受信した以前のメッセージが、Finishedメッセージに含まれているメッセージに一致するかどうかを確認します。これは、ハンドシェイク・メッセージが改ざんされていないことを確認するためです。

  9. クライアントとサーバーは、暗号化鍵とハッシュ鍵およびアルゴリズムを使用してデータを転送します。

図6-1 SSLハンドシェイク

図6-1の説明が続きます
「図6-1 SSLハンドシェイク」の説明

6.2 Oracle Fusion MiddlewareにおけるSSLについて

この項では、Oracle Fusion MiddlewareにおけるSSLについて説明します。これらの項目が含まれます。

6.2.1 Oracle Fusion MiddlewareアーキテクチャにおけるSSL

図6-2 Oracle Fusion MiddlewareにおけるSSL

図6-2の説明が続きます
「図6-2 Oracle Fusion MiddlewareにおけるSSL」の説明


注意:

  • 図6-2の「Oracle Enterprise Manager」は、Fusion Middleware Controlのユーザー・インタフェースを指します。

  • その他の管理ツールは、特定のタスクで使用できます。


図6-2で示されるOracle Fusion Middlewareアーキテクチャにおいて、丸付きの番号はSSLを有効にできるエンドポイントを表します。それぞれのエンドポイントの構成の詳細は、次の項目を参照してください。

  1. 第6.4.2.1項「Fusion Middleware Controlを使用したOracle HTTP Server仮想ホストへのインバウンド・リクエストでのSSLの有効化」および第6.4.2.2項「WLSTを使用したOracle HTTP Server仮想ホストへのインバウンド・リクエストでのSSLの有効化」

  2. 第6.4.2.3項「Oracle HTTP Serverからのアウトバウンド・リクエストでのSSLの有効化」

  3. 第6.5.1.1項「Oracle WebLogic ServerへのインバウンドSSL」

  4. LDAPサーバーへのアウトバウンド接続は、Oracle Platform Security ServicesまたはOracle WebLogic Serverから発生します。

    1. 第6.5.1.2.1項「Oracle Platform Security ServicesからのLDAPへのアウトバウンドSSL」

    2. 第6.5.1.2.3項「LDAPオーセンティケータからのLDAPへのアウトバウンドSSL」

  5. 第6.6.1.2項「データ・ソースでのSSLの有効化」

  6. 第6.6.1.1項「Oracle DatabaseでのSSLの有効化」

  7. 第6.5.2項「アプリケーションのクライアント側のSSL」

  8. 第6.5.1.2項「Oracle WebLogic ServerからのアウトバウンドSSL」

  9. 第6.6.1.1項「Oracle DatabaseでのSSLの有効化」

キーストアおよびウォレット

キーストアおよびウォレットはSSL構成の中心となり、これらを使用して証明書および鍵を保存します。

詳細は、第6.2.2項「キーストアおよびOracleウォレット」を参照してください。

6.2.2 キーストアおよびOracleウォレット

Oracle Fusion Middleware 12c (12.1.2)では、鍵と証明書のために様々なタイプのキーストアをサポートしています。

  • JKSベースのキーストアとトラストストア

    Oracle WebLogic Serverは、アップグレードした環境でJKSキーストアを使用します。

    JDKのkeytoolユーティリティでJKSキーストアおよび証明書を管理します。

  • Oracleウォレット

    Oracle HTTP Serverなどのシステム・コンポーネントではOracleウォレットを使用します。

    システム・コンポーネントのウォレットとその証明書を管理するには、Fusion Middleware ControlまたはコマンドラインWLSTとorapkiインタフェースを使用します。Fusion Middleware ControlまたはWLSTのいずれかを使用して、これらのコンポーネントのリスナーでSSLを有効化できます。

  • OPSSキーストア・サービス(KSS)のキーストアおよびトラストストア

    キーストア・サービスでは、鍵と証明書を管理するために、かわりのメカニズムが用意されています。12c (12.1.2)を新しくインストールした場合、Oracle WebLogic Serverは最初からKSSキーストアを使用します。

    KSSキーストアおよびその証明書を管理するには、Fusion Middleware ControlまたはWLSTを使用します。WebLogicサーバーのリスナーでSSLを有効化するには、WebLogicコンソールを使用します。

これらのストアのタイプ、およびどのストアのタイプをいつ使用するかについては、第6.1.3項「キーストアおよびウォレット」を参照してください。


関連項目:

キーストアの管理は、Oracle Fusion Middlewareにおける鍵と証明書の格納に関する項を参照してください。


6.2.3 認証モード

サポートされている認証モードは、次のとおりです。

  • 認証なしモードでは、サーバーもクライアントも認証は不要です。

    このモードは、匿名SSL/認証なし/Diffie-Hellmanなどと呼ばれています。このモードはセキュアではないと見なされます。

  • サーバー認証モードでは、クライアントに対してサーバー自身の認証が行われます。

    このモードは、一方向SSL/サーバー認証とも呼ばれています。

  • 相互認証モードでは、サーバーに対してクライアント自身の認証が行われ、クライアントに対してサーバー自身の認証が行われます。

    このモードは、双方向SSL/クライアント認証とも呼ばれています。

  • オプションのクライアント認証モードでは、クライアントに対してサーバー自身の認証が行われますが、サーバーに対してはクライアント自身の認証を行うことも行わないこともできます。クライアント自身の認証を行わなくても、SSLセッションは機能します。

6.2.4 SSL構成用ツール

Oracle Fusion Middlewareでは、一般的なツールと拡張ツールの2種類の構成ツールを使用します。

一般的なツール

  • Fusion Middleware Control

  • WLSTコマンドライン・インタフェース

  • Oracle WebLogic Server管理コンソール

  • keytoolコマンドライン・ツール

これらのツールを使用して、Oracle Fusion Middlewareの任意のリスナーまたはコンポーネントでSSLを構成したり、Oracle WalletやJKSキーストアを管理できます。

このリストの最初の3つのツールは、コンポーネントがアプリケーション・サーバー・ドメインに関連付けられている場合(コンポーネントがスタンドアロン・インストールではない場合)に使用できます。

拡張ツール

  • orapkiコマンドライン・インタフェース

このツールは、特定のスタンドアロン・インストールでウォレットを管理するために必要です。

また、このツールを使用して、ファイルベースのCRL、PKCS11ベースのウォレットの管理などの高度な機能を構成できます。


関連項目:

キーストアの管理は、Oracle Fusion Middlewareにおける鍵と証明書の格納に関する項を参照してください。


6.3 構成ツールでのSSLの構成

Oracle Fusion Middleware構成ではいくつかのツールを使用できます。この項では、これらのツールでSSLを構成して、それをSSLが有効なOracle WebLogic Serverに接続できるようにする方法について説明します。


関連項目:

Oracle WebLogic ServerでのインバウンドSSLの有効化の詳細は、第6.5.1.1項を参照してください。


すべての構成ツールの一覧は、第6.2.4項「SSL構成用ツール」を参照してください。

この項の項目は次のとおりです。

6.3.1 Oracle Enterprise Manager Fusion Middleware Control

次の手順に従います。

  • Fusion Middleware ControlがデプロイされているOracle WebLogic ServerインスタンスでSSLポートが有効なことを確認し、(Fusion Middleware Controlを起動する)ブラウザがサーバー証明書を信頼していることを確認します。

  • ここで、「https://host:port」形式でSSLベースのURLを使用してFusion Middleware Controlを起動します。

6.3.2 Oracle WebLogic Server管理コンソール

Oracle WebLogic ServerインスタンスでSSLポートが有効なことを確認します。ここで、URLにSSLポートを指定して管理コンソールを起動します。証明書が信頼できないという警告が表示される場合がありますが、この証明書を受け入れて続行します。

6.3.3 WLSTコマンドライン・ツール

WLSTでのSSLの構成の詳細は、次の手順を実行します。

  1. WLSTシェルを起動します。

  2. WLSTコマンドを実行します。

    help('connect')
    

ヘルプ・テキストの説明にある手順に従って、SSLモードでWLSTシェルを設定します。


関連項目:

WLSTの使用の詳細は、第6.9項を参照してください。


6.4 Web層でのSSLの構成

この項の項目は次のとおりです。


注意:

  • この項の内容は、Oracle WebLogic Serverドメインに関連したWeb層に適用されます。

  • これらの項目の表示順は、SSLが有効化される順序ではありません(この順序はトポロジによって異なります)。これらの項目は、フロントエンドのコンポーネントから開始するように配置されています。


6.4.1 ロード・バランサの構成

ロード・バランシング・デバイスに固有の手順を使用して、Oracle Fusion Middleware環境のロード・バランサを構成します。

6.4.2 Oracle HTTP Server仮想ホストでのSSLの有効化

この項では、Oracle WebLogic Server環境で動作しているOracle HTTP Server仮想ホストのSSL構成の管理方法について説明します。


注意:

スタンドアロン・モードのOracle HTTP Serverについては、『Oracle HTTP Serverの管理』を参照してください。


インバウンド・トラフィック:

アウトバウンド・トラフィック:

6.4.2.1 Fusion Middleware Controlを使用したOracle HTTP Server仮想ホストへのインバウンド・リクエストでのSSLの有効化

次の手順を実行して、Oracle HTTP Server仮想ホストへのインバウンド・トラフィックでSSLを有効にすることができます。

  1. 左側のナビゲーション・ペインでOracle HTTP Serverインスタンスを選択します。

  2. 必要に応じて、「Oracle HTTP Server」→「セキュリティ」→「ウォレット」にナビゲートします。

    ウォレットの作成とメンテナンスは、第8章「キーストア、ウォレットおよび証明書の管理」を参照してください。

  3. HTTP Server」→「管理」→「仮想ホスト」にナビゲートします。

    このページには、現在構成されているホスト、およびそれらがhttpまたはhttpsに構成されているかが表示されます。

    ohsssl1.gifの説明が続きます
    図ohsssl1.gifの説明

  4. 更新する仮想ホストを選択して、「構成」→「SSL構成」をクリックします。(注意: 新規仮想ホストを作成する場合は、『Oracle HTTP Serverの管理』を参照。)

    ohsssl2.gifの説明が続きます
    図ohsssl2.gifの説明

    「SSL構成」ページが表示されます。

  5. SSLの有効化」の選択を解除すると、httpsポートをhttpポートに変換できます。

    現在httpを使用している仮想ホストでSSLを構成するには:

    • SSLの有効化」ボックスを選択します。

    • ドロップダウン・リストからウォレットを選択します。

      ohsssl3.gifの説明が続きます
      図ohsssl3.gifの説明

    • 「サーバーSSLプロパティ」から、SSL認証タイプ、使用する暗号スイートおよびSSLプロトコル・バージョンを選択します。


      注意:

      ほとんどの状況ではデフォルト値が最適です。



      注意:

      • ここでは、Fusion Middleware Controlに証明書があることを想定しています。証明書がorapkiで作成された場合は、最初に証明書をインポートします(第8.4.4.9項を参照)。

      • 選択した認証タイプにより使用可能な暗号スイートが決まり、選択した暗号スイートにより使用可能なプロトコル・バージョンが決まります。暗号およびプロトコル・バージョンの詳細は、第6.9.16項を参照してください。


  6. OK」をクリックして変更内容を適用します。

  7. Windowsプラットフォームの場合にのみ、Windowsエクスプローラを開いて、cwallet.ssoファイルの場所に移動します。「プロパティ」→「セキュリティ」で、「グループ名またはユーザー名」にSYSTEMを追加します。

  8. Oracle HTTP Server」→「コントロール」→「再起動」にナビゲートして、Oracle HTTP Serverインスタンスを再起動します。

  9. ブラウザ・セッションを開き、SSLを有効にしたポート番号に接続します。

6.4.2.2 WLSTを使用したOracle HTTP Server仮想ホストへのインバウンド・リクエストでのSSLの有効化

次の手順に従います。

  1. 次のコマンドを実行して、このOracle HTTP Serverインスタンスの仮想ホストを確認します。

    listListeners('inst1','ohs1' )
    

    このコマンドは、このインスタンスのすべての仮想ホストをリストします。SSLを構成する必要がある仮想ホストを1つ選択します。たとえば、「vhost1」を選択できます。このコマンドの詳細は、『WebLogic Server WLSTコマンド・リファレンス』を参照してください。

  2. SSLプロパティで仮想ホストを構成します。

    configureSSL('inst1',
       'ohs1',
       'ohs',
       'vhost1')
    

    注意:

    • configureSSLでは、すべてのSSL属性のデフォルトを使用します。詳細は、表6-4を参照してください。

    • パラメータとしてプロパティ・ファイルをconfigureSSLに指定することもできます。パラメータの詳細は、表6-3を参照してください。プロパティ・ファイルの使用例の詳細は、『WebLogic Server WLSTコマンド・リファレンス』configureSSLに関する説明を参照してください。

    • このコマンドの詳細は、第6.9項を参照してください。


  3. Windowsプラットフォームの場合にのみ、Windowsエクスプローラを開いて、cwallet.ssoファイルの場所に移動します。「プロパティ」→「セキュリティ」で、「グループ名またはユーザー名」にSYSTEMを追加します。

6.4.2.3 Oracle HTTP Serverからのアウトバウンド・リクエストでのSSLの有効化

mod_wl_ohsを構成してOracle HTTP Serverからのアウトバウンド・リクエストでのSSLを有効化します。

一方向SSL

手順は次のとおりです。

  1. 証明書を含むOracle WebLogic Serverのカスタム・キーストアを生成します(第6.5.1項を参照してください)。

  2. ステップ1のOracle WebLogic Serverで使用される証明書をOracle HTTP Serverウォレットに、信頼できる証明書としてインポートします。このタスクには、WLSTやFusion Middleware Controlなどの使用可能なユーティリティを使用できます。(注意: ここで説明するウォレットは、Oracle HTTP Serverリスニング・ポートがSSL用に使用するウォレットです。Oracle WebLogic Server証明書に署名した信頼性できる(ルート)CA証明書は、このウォレットに格納されている必要があります。信頼性できる証明書のインポートの詳細は、第8.4.7.5項を参照してください。)

  3. Oracle HTTP Server構成ファイルDOMAIN_HOME/config/fmwconfig/components/OHS/instance_name/ssl.confを編集し、SSL構成のmod_weblogicの下に次の行を追加します。

    WlSSLWallet  "$(DOMAIN_HOME}/config/fmwconfig/components/COMPONENT_TYPE/COMPONENT_NAME/keystores/default"
    

    このdefaultは、ステップ2のOracle HTTP Serverウォレットの名前です。

    次にその構成の例を示します。

    <IfModule mod_weblogic.c>
    WebLogicHost myweblogic.server.com
    WebLogicPort 7002
    MatchExpression *.jsp
    SecureProxy On
    WlSSLWallet "$(DOMAIN_HOME}/config/fmwconfig/components/OHS/ohs1/keystores/default"
    </IfModule>
    

    ファイルを保存して終了します。

  4. Windowsプラットフォームの場合にのみ、Windowsエクスプローラを開いて、cwallet.ssoファイルの場所に移動します。「プロパティ」→「セキュリティ」で、「グループ名またはユーザー名」にSYSTEMを追加します。

  5. Oracle HTTP Serverを再起動して変更を有効にします。詳細は、『Oracle HTTP Serverの管理』を参照してください。

  6. ステップ1で生成されたカスタム・キーストアを使用するようにOracle WebLogic Serverインスタンスが構成され、別名が証明書の生成に使用される別名値を指していることを確認します。Oracle WebLogic Serverインスタンスを再起動します。

双方向SSL

mod_wl_ohsでは、双方向SSL通信もサポートします。双方向SSLを構成する手順は次のとおりです。

  1. 前の一方向SSLのステップ1から4を実行します。

  2. Oracle WebLogic Serverのトラストストアtrust.jksを生成します。

    (前の手順のステップ1で)一方向SSL用に作成されたキーストアは、信頼できる証明書を保存するために使用できますが、この手順で個別のトラストストアを作成することをお薦めします。

  3. Oracle HTTP Serverウォレットからユーザー証明書をエクスポートして、それをステップ2で作成したトラストストアにインポートします。

    エクスポートには、WLSTやFusion Middleware Controlなどの使用可能なユーティリティを使用できます。インポートにはkeytoolユーティリティを使用できます。

  4. Oracle WebLogic Server管理コンソールから、構成するサーバーの「キーストア」タブを選択します。

  5. ステップ2で作成したトラストストアのtrust.jksファイルの場所によりカスタム・トラストストアを設定します(完全な名前を使用します)。

  6. キーストア・タイプをJKSに設定し、キーストアの作成に使用されるパスフレーズを設定します。

  7. SSL」タブで、「信頼性のある認証局」が「カスタム信頼キーストアから」に設定されていることを確認します。

  8. Oracle WebLogic Serverが双方向SSL用に構成されていることを確認します。詳細は、『Oracle WebLogic Serverセキュリティの管理』のSSLの構成に関する説明を参照してください。

6.5 中間層でのSSLの構成

中間層では、次のようにSSLを使用します。

この項では、中間層でのSSLの構成について説明します。この項の項目は次のとおりです。

6.5.1 Oracle WebLogic ServerでのSSLの構成

この項では、アプリケーション・サーバーの構成について説明します。

6.5.1.1 Oracle WebLogic ServerへのインバウンドSSL

SSLを実装してOracle WebLogic Serverを保護する方法の詳細は、『Oracle WebLogic Serverセキュリティの管理』の次のトピックを参照してください。

  • 「Oracle OPSSキーストア・サービスの構成」

  • 「SSLの構成」

6.5.1.2 Oracle WebLogic ServerからのアウトバウンドSSL

この項では、Oracle WebLogic Serverからのアウトバウンド接続でSSLを有効にする方法について説明します。

6.5.1.2.1 Oracle Platform Security ServicesからのLDAPへのアウトバウンドSSL

この項では、LDAPディレクトリへのポリシー・ストア接続および資格証明ストア接続用にSSLを構成する方法について説明します(サーバー側とクライアント側が必要)。匿名SSLおよび一方向SSLがサポートされています。

この項で参照されるjps-config.xmlの詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』を参照してください。

匿名SSL(サーバー側)

匿名認証モードでLDAPサーバーを起動します。

このタスクの詳細は、LDAPサーバーのドキュメントを参照してください。

匿名SSL(クライアント側)

jps-config.xmlファイルでは、プロトコルをldapsに設定し、プロパティldap.urlに適切なポートを指定する必要があります。この情報は、ポリシー・ストア、資格証明ストア、キーストア、およびldap.urlを使用するその他のサービスに対して更新する必要があります。

一方向SSL(クライアント側)

クライアント側の構成が次のようになっている必要があります。

  1. LDAPの証明書を信頼するには、使用するトラスト・ストアを検索する場所をJVMが認識している必要があります。これを行うには、次のように設定します。

    -Djavax.net.ssl.trustStore=path_to_jks_file
    

    このプロパティは、JavaSEプログラム、またはJavaEE環境のサーバー起動プロパティに追加されます。

  2. jps-config.xmlファイルでは、プロトコルをldapsに設定し、プロパティldap.urlに適切なポートを指定する必要があります。この情報は、ポリシー・ストア、資格証明ストア、キーストア、およびldap.urlを使用するその他のサービスに対して更新する必要があります。

  3. keytoolを使用して、LDAPサーバーの証明書をステップ1で指定したトラスト・ストアにインポートします。

6.5.1.2.2 Oracle Platform Security ServicesからのOracleデータベースへのアウトバウンドSSL

一方向または双方向のSSL接続をデータベース・ベースのOPSSセキュリティ・ストアに設定できます。

データベースのサーバーおよびクライアントの構成の詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』を参照してください。

6.5.1.2.3 LDAPオーセンティケータからのLDAPへのアウトバウンドSSL

LDAPディレクトリへのアウトバウンドSSLの詳細は、『Oracle WebLogic Serverセキュリティの管理』のWebLogic ServerでのSSL証明書の検証方法に関する説明を参照してください。

6.5.1.2.4 データベースへのアウトバウンドSSL

データベース・リスナー用のSSLの構成の詳細は、Oracle Advanced Security管理者ガイドのSSL認証の構成に関する説明(http://docs.oracle.com/cd/E11882_01/network.112/e10746/asossl.htm)を参照してください。

6.5.2 アプリケーションのクライアント側のSSL

SSLを有効にしたアプリケーションの作成方法の詳細は、『WebLogicセキュリティ・サービスによるアプリケーションの開発』のJavaクライアントでのSSL認証の使用に関する説明を参照してください。

ベスト・プラクティスは、第6.8.2項「アプリケーション開発者のベスト・プラクティス」を参照してください。

6.6 データ層でのSSLの構成

この項では、次の項目について説明します。

6.6.1 データベースでのSSLの構成

この項の項目は次のとおりです。

6.6.1.1 SSLが有効なOracle Database

次の手順を実行して、OracleデータベースでSSLを有効にします。

  1. ルートCAとDBの証明書を作成します。次に例を示します。


    注意:

    本番で使用する場合、自己署名証明書はお薦めしません。本番ウォレットの取得の詳細は、第8.4.8.3項「自己署名付きウォレットのサード・パーティのウォレットへの変更」を参照してください。


    mkdir root
    mkdir server
     
    # Create root wallet, add self-signed certificate and export
    orapki wallet create -wallet ./root -pwd password
    orapki wallet add -wallet ./root -dn CN=root_test,C=US -keysize 2048 -self_signed -validity 3650 -pwd password
    orapki wallet display -wallet ./root -pwd password
    orapki wallet export -wallet ./root -dn CN=root_test,C=US -cert ./root/b64certificate.txt -pwd password
     
    #Create server wallet, add self-signed certificate and export
    orapki wallet create -wallet ./server -pwd password
    orapki wallet add -wallet ./server -dn CN=server_test,C=US -keysize 2048 -pwd password
    orapki wallet display -wallet ./server -pwd password
    orapki wallet export -wallet ./server -dn CN=server_test,C=US -request ./server/creq.txt -pwd password
     
    # Import trusted certificates
    orapki cert create -wallet ./root -request ./server/creq.txt -cert ./server/cert.txt -validity 3650 -pwd password
    orapki cert display -cert ./server/cert.txt -complete
    orapki wallet add -wallet ./server -trusted_cert -cert ./root/b64certificate.txt -pwd password
    orapki wallet add -wallet ./server -user_cert -cert ./server/cert.txt -pwd password
    orapki wallet create -wallet ./server -auto_login -pwd password}}
    
  2. データベースのlistener.orasqlnet.oraおよびtnsnames.oraを更新します。

    1. 次の例は、デフォルトのlistener.oraを示します。

      SID_LIST_LISTENER =
      (SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = /path_to_O_H)(PROGRAM = extproc)))
      LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = mynode.mycorp.com)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCPS)(HOST = mynode.mycorp.com)(PORT = 2490))
      ))
       
      WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/wallet_location)))
       
      SSL_CLIENT_AUTHENTICATION=FALSE}}
      

      次に、更新されたlistener.oraファイルを示します。このシナリオではクライアント認証なしに指定しています。

      SID_LIST_LISTENER =
        (SID_LIST =
          (SID_DESC =
            (GLOBAL_DBNAME = dbname)
            (ORACLE_HOME = /path_to_O_H)
            (SID_NAME = sid)
          )
        )
       
      SSL_CLIENT_AUTHENTICATION = FALSE
       
      WALLET_LOCATION =
        (SOURCE =
          (METHOD = FILE)
          (METHOD_DATA =
            (DIRECTORY = /wallet_path)
          )
        )
       
      LISTENER =
        (DESCRIPTION_LIST =
          (DESCRIPTION =
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          )
          (DESCRIPTION =
            (ADDRESS = (PROTOCOL = TCP)(HOST = mynode.mycorp.com)(PORT = 1521))
          )
          (DESCRIPTION =
            (ADDRESS = (PROTOCOL = TCPS)(HOST = mycorp.com)(PORT = 2490))
          )
        )
      

      SSLポートが追加されています。

    2. 同様に、変更されたsqlnet.oraファイルは次のようになります。

      NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
      SQLNET.AUTHENTICATION_SERVICES=(BEQ,TCPS,NTS)
      WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/directory)))
      SSL_CLIENT_AUTHENTICATION=FALSE
      
    3. 変更されたtnsnames.oraファイルは次のようになります。

      OID =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = mynode.mycorp.com)(PORT = 1521))
          (CONNECT_DATA =
            (SERVER = DEDICATED)
            (SERVICE_NAME = mynode.mycorp.com)
          )
        )
         
      SSL =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCPS)(HOST = mynode.mycorp.com)(PORT = 2490))
          )
          (CONNECT_DATA =
            (SERVICE_NAME = mynode.mycorp.com)
            or
            (SID = mynode.mycorp.com)
          )
          (SECURITY=(SSL_SERVER_CERT_DN=\"CN=server_test,C=US\"))
        )
      
  3. 新しい接続文字列を使用してデータベースへの接続をテストします。次に例を示します。

    $ tnsping ssl
    $ sqlplus username/password@ssl
    

関連項目:

『Oracle Database Advanced Security管理者ガイド』のSecure Sockets Layer認証の構成に関する項を参照してください。


6.6.1.2 データ・ソースでのSSLの有効化

次の手順を実行して、SSLを使用するようにOracle WebLogic Server上のデータ・ソースを構成します。

  1. トラストストアを作成して、(データベースでSSLを有効にしたときに作成した)ルート証明書を、信頼できる証明書としてトラストストアに追加します。

  2. Oracle WebLogic Server管理コンソールで、使用しているデータ・ソースの「接続プール」タブにナビゲートします。


    注意:

    Oracle WebCenter Portalデータ・ソースなどの既存ソースや新しいデータ・ソースをデータ・ソースにできます。詳細は、『Oracle WebLogic Server JDBCデータ・ソースの管理』のJDBCデータ・ソースの作成に関する説明を参照してください。


    JDBCプロパティ」テキスト・ボックスで指定する必要があるプロパティは、構成する認証のタイプにより異なります。

    • クライアント認証(双方向認証)が必要な場合:

      javax.net.ssl.keyStore=..(password of the keystore)
             javax.net.ssl.keyStoreType=JKS
             javax.net.ssl.keyStorePassword=...(password of the keystore)
             javax.net.ssl.trustStore=...(the truststore location on the disk)
             javax.net.ssl.trustStoreType=JKS
             javax.net.ssl.trustStorePassword=...(password of the truststore)
      
    • クライアント認証が不要な場合:

      javax.net.ssl.trustStore=...(the truststore location on the disk)
             javax.net.ssl.trustStoreType=JKS
             javax.net.ssl.trustStorePassword=...(password of the truststore)
      
  3. 「URL」テキスト・ボックスにJDBC接続文字列を入力します。プロトコルがTCPSで、SSL_SERVER_CERT_DNにデータベース証明書の完全なDNが含まれていることを確認します。

    tnsnames.oraが「SERVICE_NAME」を使用する場合は、次の構文を使用します。

    jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCPS)(HOST=host-name)(PORT=port-number)))(CONNECT_DATA=(SERVICE_NAME=service))(SECURITY=(SSL_SERVER_CERT_DN="CN=server_test,C=US")))
    

    tnsnames.oraが「SID」を使用する場合は、次の構文を使用します。

    jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCPS)(HOST=host-name)(PORT=port-number)))(CONNECT_DATA=(SID=service))(SECURITY=(SSL_SERVER_CERT_DN="CN=server_test,C=US")))
    
  4. 接続をテストおよび検証します。この時点で、データ・ソースはSSLを使用するように構成されています。

6.7 高度なSSLの使用事例

この項では、前述の基本的なトポロジを超えた高度なSSL構成のシナリオを処理する方法について説明します。

この項で使用されているコマンドの詳細および例は、第6.9項を参照してください。

6.7.1 ハードウェア・セキュリティ・モジュールとアクセラレータ

ハードウェア・セキュリティ・モジュール(HSM)は、コンピュータに組み込むことができる物理的なプラグイン・カードまたは外部セキュリティ・デバイスで、セキュアなストレージ環境を提供し機密コンテンツを扱うことができます。


注意:

この項の内容は、HSMをサポートしているシステム・コンポーネントであるOracle HTTP Serverにのみ適用されます。


Oracle Fusion Middlewareでは、PKCS#11規格に準拠したHSMデバイスをサポートし、秘密鍵を使用したセキュアなストレージ環境を提供します。

次の手順を実行し、PKCS#11ウォレットを使用してコンポーネントでSSLを実装します。

  1. コンポーネントが稼働しているマシンにHSMライブラリをインストールします。これは、1回かぎりのタスクでデバイスに依存します。

  2. 次に、orapkiコマンドライン・ツールを使用してウォレットを作成します。次の点に注意してください。

    1. ウォレット・タイプとして「PKCS11」を選択します。

    2. デバイスとの通信に使用されるデバイス固有のPKCS#11ライブラリを指定します。このライブラリは、HSMソフトウェアの一部です。

      Linuxでは、ライブラリは次の場所にあります。

      For LunaSA (Safenet):  /usr/lunasa/lib/libCryptoki2.so
      For nCipher:  /opt/nfast/toolkits/pkcs11/libcknfast.so
      

      Windowsでは、ライブラリは次の場所にあります。

      For LunaSA (Safenet): C:\Program Files\LunaSA\cryptoki.dll
      
  3. ここで、第三者の証明書を取得するための標準的な手順を実行します。証明書リクエストを作成し、認証局(CA)で承認されたリクエストを取得して、そのCAで署名された証明書をインストールします。

    設定したウォレットは、他のウォレットと同様に使用されます。

  4. orapkiユーティリティでウォレットを確認します。次のコマンド構文を使用します。

    orapki wallet p11_verify [-wallet [wallet]] [-pwd password]
    

    関連項目:

    orapkiの詳細は、付録G「orapki」を参照してください。


  5. configureSSL WLSTコマンドを使用して、コンポーネントのリスナーでSSLを構成します。このコマンドは入力にプロパティ・ファイルを指定します。プロパティ・ファイルでは、コンポーネントが稼働しているマシンのPKCS#11ウォレット・ディレクトリのフルパスを指定する必要があります。(注意: PKCS#11ウォレットをインスタンス・ホーム・ディレクトリに保存しないでください。Fusion Middleware ControlまたはWLSTを介して作成および管理されるウォレットのみがインスタンス・ホームに存在する必要があります。)

    サンプルのプロパティ・ファイルは、次のようになります。

    SSLEnabled=true
    AuthenticationType=Server
    PKCS11Wallet=/tmp/lunasa/wallet 
    

注意:

WLSTコマンドのconfigureSSLを使用して、PKCS11ウォレットを構成する必要があります。Fusion Middleware Controlまたはその他のツールを使用してこのタスクを実行することはできません。


6.7.2 CRLとSSLとの統合


注意:

  • この項の内容は、Oracle WebLogic Server環境におけるOracle HTTP Serverにのみ適用されます。スタンドアロン・コンポーネントのSSL構成の詳細は、『Oracle HTTP Serverの管理』を参照してください。

  • CRL検証はWLSTを使用して管理します。このタスクはFusion Middleware Controlを使用して実行することができません。


SSLを使用するコンポーネントは、オプションで証明書失効リスト(CRL)を使用した証明書の検証を有効にできます。これによりそのコンポーネントでは、SSLハンドシェイクでピア証明書を検証して、認証局(CA)で発行された失効済証明書のリストにそれがないか確認できます。

この項では、CRLベースの検証を使用するようにコンポーネントを構成する方法、およびファイル・システム上にCRLを作成および設定する方法を説明します。

6.7.2.1 コンポーネントのCRL検証の構成

configureSSL WLSTコマンドを使用して、コンポーネントのリスナーでSSLを構成します。このコマンドは入力にプロパティ・ファイルを指定します。

プロパティ・ファイルは、次のように設定する必要があります。

  1. 「CertValidation」属性は「url」に設定する必要があります。

  2. 「CertValidationPath」属性は、「file://file_path」または「dir://directory_path」という形式にする必要があります。

    • 証明書の検証に単一のCRLファイルを使用している場合、最初の形式を使用します。このCRLファイルは、すべてのCRLファイルを結合する必要があります。

    • 複数のCRLファイルがハッシュ形式で格納されているディレクトリ・パスを指定する場合、2番目の形式を使用します。

      ハッシュ形式でCRLを作成する方法の詳細は、第6.7.2.2項「ファイル・システムでのCRLの管理」を参照してください。

次の例では、プロパティ・ファイルは単一のCRLファイルを指定します。

SSLEnabled=true
AuthenticationType=Server
CertValidation=crl
KeyStore=ohs1 
CertValidationPath=file:///tmp/file.crl

次の例では、プロパティ・ファイルは複数のCRLファイルへのディレクトリ・パスを指定しています。

SSLEnabled=true
AuthenticationType=Server
KeyStore=ohs1 
CertValidation=crl
CertValidationPath=dir:///tmp

6.7.2.2 ファイル・システムでのCRLの管理


注意:

LDAPベースのCRLまたはCRL配布ポイントはサポートされません。


orapkiコマンドライン・ツールを使用して、ファイル・システム上でCRLを管理します。このトピックの詳細は、第G.1.5項「orapkiユーティリティを使用した証明書失効リスト(CRL)の管理」を参照してください。

ハッシュ形式へのCRLの名前変更

CRL格納場所を指定する場合は、CRLの名前を変更する必要があります。これにより、実行時に効率的にCRLをロードできます。この操作では、実際のCRLファイルへのシンボリック・リンクを作成します。Windowsでは、新しい名前を付けたファイルにCRLをコピーします。

CRLの名前を変更するには:

orapki crl hash 
[-crl [url|filename]] [-wallet wallet] [-symlink directory] 
[-copy directory] [-summary] [-pwd password]

次に例を示します。

orapki crl hash -crl nzcrl.txt -symlink wltdir -pwd password

CRLファイル名を実行時に指定すると、複数のCRLをそのファイルに結合できます。この例で作成されるCRLはBase64形式なので、テキスト・エディタを使用してCRLを結合できます。

CRLの作成


注意:

CRLの作成および証明書の失効はテスト目的で行い、必ず自己署名証明書とともに使用します。本番で使用する場合、本番の証明書を有名なCAから取得して、CRLをそれらの認証局から取得します。


CRLを作成するには:

orapki crl create 
[-crl [url|filename]] [-wallet [cawallet]] [-nextupdate [days]] [-pwd password]

次に例を示します。

orapki crl create 
-crl nzcrl.crl -wallet rootwlt -nextupdate 3650 -pwd password

証明書の失効

証明書が失効すると、証明書のシリアル番号がCRLに追加されます。

証明書を失効させるには:

orapki crl revoke 
[-crl [url|filename]] [-wallet [cawallet]] [-cert   [revokecert]] [-pwd password]

次に例を示します。

orapki crl revoke 
-crl nzcrl.txt -wallet rootwlt -cert cert.txt -pwd password

6.7.2.3 CRL検証が構成されたコンポーネントのテスト

コンポーネントでCRL検証が正しく構成されていることをテストするには、次の手順を実行します。

  1. コンポーネントで使用される証明書をウォレットに設定します。

  2. この証明書を含むCRLを失効済証明書リストの中に生成します。第6.7.2.2項「ファイル・システムでのCRLの管理」で説明されている手順を実行します。

  3. このCRLを使用するようにコンポーネントを構成します。第6.7.2.1項「コンポーネントのCRL検証の構成」で説明されている手順を実行します。

  4. この失効済証明書を使用すると、SSLハンドシェイクは失敗します。

6.7.3 Oracle Fusion MiddlewareのFIPS 140-2の設定

この項では、FIPS 140-2の高度なセキュリティ規格に適合するようにOracle Fusion Middlewareコンポーネントを構成する方法について説明します。この項の項目は次のとおりです。


関連項目:

この規格の詳細は、次の暗号化モジュール検証プログラムのWebサイトを参照してください。

http://csrc.nist.gov/groups/STM/index.html


6.7.3.1 FIPSで構成可能な製品

Oracle SSL SDKを使用する製品は、FIPSモードで実行するように構成できます。具体的には、Oracle HTTP ServerをFIPSモードで構成できます。

6.7.3.2 SSLFIPS_140パラメータの設定

これらのコンポーネントをFIPSモードで実行するように構成するには、fips.oraファイルでSSLFIPS_140パラメータをTRUEに設定します。

SSLFIPS_140=TRUE

このファイルは標準装備ではないので、作成する必要があります。fips.oraは、$ORACLE_HOME/ldap/adminディレクトリ、またはFIPS_HOME環境変数で指定されたディレクトリに配置します。

SSLFIPS_140パラメータは、デフォルトではFALSEに設定されます。FIPSモードで操作するには、これをTRUEに設定する必要があります。

6.7.3.3 暗号スイートの選択

暗号スイートは、ネットワーク・ノード間のメッセージ交換に使用される認証、暗号化およびデータ整合性アルゴリズムのセットです。たとえば、SSLハンドシェイク時に、2つのノードでネゴシエーションを行い、メッセージを交換するときにどの暗号スイートを使用するかを確認します。

FIPSモードで使用する場合、次の暗号スイートのみが承認されます。

SSL_RSA_WITH_3DES_EDE_CBC_SHA
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA

FIPSモードで稼働中に別の暗号を使用しないでください。

カンマ区切りの値を使用してこれらの1つ以上の暗号を構成できます。これらは、WLST configureSSLコマンドのキー「Ciphers」のSSLプロパティ・ファイルまたはFusion Middleware Controlで指定する必要があります。

configureSSLコマンドでのSSLプロパティ・ファイルの指定の詳細は、第6.9.16項「SSL用プロパティ・ファイル」を参照してください。

6.7.3.4 その他の構成パラメータ

FIPSモードを有効にするための最小キー・サイズは、1024ビットです。FIPSモードで使用されるキーのサイズが1024ビット以上であることを確認する必要があります。これは、Oracle HTTP Serverなどのコンポーネントで使用されるウォレットの証明書の公開鍵が最小サイズの1024ビットである必要があるためです。

orapkiなどのOracleツールを使用して作成されたウォレットのみを使用できます。サードパーティのPKCS#12ウォレット・ファイルは、FIPSモードでは使用できません。

6.8 SSLのベスト・プラクティス

この項では、Oracle Fusion Middlewareコンポーネント管理者およびアプリケーション開発者のいくつかのベスト・プラクティスの概要を説明します。これらの項目が含まれます。

6.8.1 管理者のベスト・プラクティス

システム管理者のベスト・プラクティスには、次のようなものがあります。

  • 自己署名付きウォレットはテスト環境でのみ使用します。本番環境に移行する前にウォレットにCAで署名された証明書を取得する必要があります。詳細は、第8章「キーストア、ウォレットおよび証明書の管理」を参照してください。

  • (少なくともWeb層の)コンポーネントでは、DNとしてシステム・ホスト名または仮想ホストまたはサイト名を持つ証明書を使用することをお薦めします。そうすることにより、混乱させる警告メッセージが表示されることなく、ブラウザはSSLモードで接続できます。

  • SSLで使用される証明書では、最小キー・サイズの1024ビットを使用することをお薦めします。キー・サイズを大きくすると、セキュリティは高くなりますが、パフォーマンスが低下します。セキュリティおよびパフォーマンス要件に応じて、適切なキー・サイズ値を選択します。

  • SSLハンドシェイクが失敗する主な原因の1つに信頼性が欠落していることがあります。SSLハンドシェイクを開始する前に、(サーバーCA証明書をクライアント・キーストアにインポートして)クライアントがサーバーを信頼していることを確認してください。クライアント認証も必要な場合は、その逆も確認する必要があります。

6.8.2 アプリケーション開発者のベスト・プラクティス

次のプラクティスをお薦めします。

  • Javaキーストア(JKS)を使用してJava EEアプリケーションの証明書を保存します。

  • キーストア・パス、トラストストア・パス、構成ファイルの認証タイプなどのSSL構成パラメータは、アプリケーション・コードのそれぞれの値に埋め込まず、外部に配置します。そうすることで、アプリケーション自体を変更せずに柔軟にSSL構成を変更できます。

6.9 SSL関連のWLSTリファレンス

Oracleウォレットを管理し、Oracle Fusion Middlewareコンポーネント用のSSLを構成するために、WLSTコマンドが使用できます。

このタスクを実行するためには、表6-1および表6-2にリストされたコマンドを使用します。


関連項目:

WLSTシェルを起動してSSL関連コマンドを実行する方法の詳細は、キーストアおよびウォレット用コマンドライン・インタフェースに関する項を参照してください。その他の場所からはWLSTインタフェースを起動しないでください。



注意:

SSL構成用のすべてのWLSTコマンドは、オンライン・モードで実行する必要があります。


各コマンドは、次のように指定してヘルプを表示できます。

help('command_name')

特定のコマンドには、インスタンス名、iasコンポーネント、プロセス・タイプなどのパラメータが必要です。この情報は、次のコマンドで取得できます。

state('serverName') [in WebLogic domain]

nmServerStatus(serverName='name', serverType='type') [in Standalone domain]

表6-1 SSL構成用WLSTコマンド

使用するコマンド 使用目的 WLSTによる使用

configureSSL


コンポーネント・リスナーのSSL属性を設定します。

オンライン

getSSL


コンポーネント・リスナーのSSL属性を表示します。

オンライン


表6-2 Oracleウォレット管理用WLSTコマンド

使用するコマンド 使用目的 WLSTによる使用

addCertificateRequest


Oracleウォレットに証明書署名リクエストを生成します。

オンライン

addSelfSignedCertificate


自己署名証明書をOracleウォレットに追加します。

オンライン

changeWalletPassword


Oracleウォレットのパスワードを変更します。

オンライン

createWallet


Oracleウォレットを作成します。

オンライン

deleteWallet


Oracleウォレットを削除します。

オンライン

exportWallet


Oracleウォレットをファイルにエクスポートします。

オンライン

exportWalletObject


オブジェクト(証明書など)をOracleウォレットからファイルにエクスポートします。

オンライン

getWalletObject


Oracleウォレットに存在する証明書またはその他のオブジェクトを表示します。

オンライン

importWallet


Oracleウォレットをファイルからインポートします。

オンライン

importWalletObject


証明書またはその他のオブジェクトをファイルからOracleウォレットにインポートします。

オンライン

listWalletObjects


Oracleウォレットに存在するすべてのオブジェクト(証明書など)を表示します。

オンライン

listWallets


コンポーネント・インスタンスで構成されるすべてのOracleウォレットを表示します。

オンライン

removeWalletObject


証明書またはその他のオブジェクトをコンポーネント・インスタンスのOracleウォレットから削除します。

オンライン



注意:

WLSTを使用する場合、証明書はPEMフォーマットのみでインポートできます。


6.9.1 addCertificateRequest

Oracleウォレットに証明書署名リクエストを生成するオンライン・コマンドです。

6.9.1.1 説明

このコマンドにより、コンポーネント・インスタンス(Oracle HTTP Server)のOracleウォレットにBase64でエンコードされたPKCS#10形式の証明書署名リクエストを生成します。認証局(CA)で署名された証明書を取得するには、証明書署名リクエストをCAに送信します。

6.9.1.2 構文

addCertificateRequest('instName', 'compName', 'compType', 'walletName', 'password', 'DN', 'keySize')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。

walletName

ウォレット・ファイルの名前を指定します。

password

ウォレットのパスワードを指定します。

DN

鍵ペアのエントリの識別名を指定します。

keySize

鍵サイズをビット単位で指定します。


6.9.1.3

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1で、DNがcn=www.acme.comでキー・サイズが1024の証明書署名リクエストがwallet1に生成されます。

wls:/mydomain/serverConfig> addCertificateRequest('inst1', 'ohs1', 'ohs','wallet1', 'password', 'cn=www.acme.com', '1024',)

6.9.2 addSelfSignedCertificate

自己署名証明書を追加するオンライン・コマンドです。

6.9.2.1 説明

このコマンドにより、鍵ペアを作成して、指定されたコンポーネント・インスタンス(Oracle HTTP Server)のOracleウォレットの自己署名証明書でラップします。RSAアルゴリズムに基づいた鍵のみが生成されます。

6.9.2.2 構文

addSelfSignedCertificate('instName', 'compName', 'compType', 'walletName',                         'password', 'DN', 'keySize')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。

walletName

ウォレット・ファイルの名前を指定します。

password

ウォレットのパスワードを指定します。

DN

鍵ペアのエントリの識別名を指定します。

keySize

鍵サイズをビット単位で指定します。


6.9.2.3

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1で、DNがcn=www.acme.comでキー・サイズが1024の自己署名証明書がwallet1に追加されます。

wls:/mydomain/serverConfig> addSelfSignedCertificate('inst1', 'ohs1', 'ohs','wallet1', 'password', 'cn=www.acme.com', '1024')

6.9.3 changeWalletPassword

Oracleウォレットのパスワードを変更するオンライン・コマンドです。

6.9.3.1 説明

このコマンドにより、指定されたコンポーネント・インスタンス(Oracle HTTP Server)のOracleウォレットのパスワードを変更します。このコマンドは、パスワードで保護されたウォレットにのみ適用されます。

6.9.3.2 構文

changeWalletPassword('instName', 'compName', 'compType', 'walletName','currPassword', 'newPassword')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。

walletName

ウォレットのファイル名を指定します。

currPassword

現在のウォレット・パスワードを指定します。

newPassword

新しいウォレット・パスワードを指定します。


6.9.3.3

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1wallet1のパスワードがcurrpasswordからnewpasswordに変更されます。

wls:/mydomain/serverConfig> changeWalletPassword('inst1', 'ohs1', 'ohs','wallet1', 'currpassword', 'newpassword')

6.9.4 configureSSL

SSL属性を設定するオンライン・コマンドです。

6.9.4.1 説明

このコマンドにより、コンポーネント・リスナーのSSL属性を設定します。属性はプロパティ・ファイル形式(name=value)で指定します。このファイルが指定されない場合、またはそのファイルにSSL属性が含まれていない場合、デフォルトの属性値が使用されます。

プロパティ・ファイルの形式の詳細は、第6.9.16項「SSL用プロパティ・ファイル」を参照してください。

6.9.4.2 構文

configureSSL('instName', 'compName', 'compType', 'listener', 'filePath')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。

listener

SSLで構成するコンポーネント・リスナーの名前を指定します。

filePath

設定するSSL属性を含むプロパティ・ファイルの絶対パスを指定します。


6.9.4.3

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle Virtual Directoryインスタンスovd1のリスナーlistener1に対して、プロパティ・ファイル/tmp/ssl.propertiesで指定されたSSL属性が構成されます。

wls:/mydomain/serverConfig> configureSSL('inst1', 'ovd1', 'ovd', 'listener1','/tmp/ssl.properties')

次のコマンドでは、プロパティ・ファイルを指定せずにSSL属性を構成します。ファイルが指定されないので、デフォルトのSSL属性値が使用されます。

wls:/mydomain/serverConfig> configureSSL('inst1', 'ovd1', 'ovd', 'listener2')

6.9.5 createWallet

Oracleウォレットを作成するオンライン・コマンドです。

6.9.5.1 説明

このコマンドにより、指定されたコンポーネント・インスタンス(Oracle HTTP Server)のOracleウォレットを作成します。ウォレットは、パスワードで保護することも自動ログイン・タイプにすることもできます。ウォレットの詳細は、第8章「キーストア、ウォレットおよび証明書の管理」を参照してください。

6.9.5.2 構文

createWallet('instName', 'compName', 'compType', 'walletName', 'password')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。

walletName

作成するウォレット・ファイルの名前を指定します。

password

ウォレットのパスワードを指定します。


6.9.5.3

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1wallet1というウォレットが、パスワードpasswordで作成されます。

wls:/mydomain/serverConfig> createWallet('inst1', 'ohs1', 'ohs','wallet1', 'password')

次のコマンドにより、アプリケーション・サーバー・インスタンスinst1のOracle WebCacheインスタンスwc1に対して、wallet2という自動ログイン・ウォレットが作成されます。

wls:/mydomain/serverConfig> createWallet('inst1', 'wc1', 'webcache','wallet2', '')

6.9.6 deleteWallet

Oracleウォレットを削除するオンライン・コマンドです。

6.9.6.1 説明

このコマンドにより、指定されたコンポーネント・インスタンスのOracleウォレットを削除します。

6.9.6.2 構文

deleteWallet('instName', 'compName', 'compType', 'walletName')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。

walletName

削除するウォレット・ファイルの名前を指定します。


6.9.6.3

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1wallet1というウォレットが削除されます。

wls:/mydomain/serverConfig> deleteWallet('inst1', 'ohs1', 'ohs','wallet1')

6.9.7 exportWallet

Oracleウォレットをエクスポートするオンライン・コマンドです。

6.9.7.1 説明

このコマンドでは、指定したコンポーネント・インスタンスのために構成したOracleウォレットが、指定のディレクトリのファイルにエクスポートされます。エクスポートされたファイルが自動ログインのみのウォレットの場合、そのファイル名はcwallet.ssoになります。それがパスワードで保護されたウォレットの場合、ewallet.p12とcwallet.ssoという2つのファイルが作成されます。

6.9.7.2 構文

exportWallet('instName', 'compName', 'compType', 'walletName','password', 'path')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。

walletName

ウォレット・ファイルの名前を指定します。

password

ウォレットのパスワードを指定します。

path

オブジェクトのエクスポート先ディレクトリの絶対パスを指定します。


6.9.7.3

次のコマンドでは、Oracle HTTP Serverインスタンスohs1の自動ログイン・ウォレットwallet1/tmpの下のファイルcwallet.ssoにエクスポートされます。

wls:/mydomain/serverConfig> exportWallet('inst1', 'ohs1', 'ohs', 'wallet1','','/tmp')

次のコマンドでは、Oracle HTTP Serverインスタンスohs1のパスワードで保護されたウォレットwallet2が、/tmpの下のewallet.p12cwallet.ssoの2つのファイルにエクスポートされます。

wls:/mydomain/serverConfig> exportWallet('inst1', 'ohs1', 'ohs', 'wallet2', 'password', '/tmp')

6.9.8 exportWalletObject

証明書またはその他のウォレット・オブジェクトをファイルにエクスポートするオンライン・コマンドです。

6.9.8.1 説明

このコマンドでは、Oracleウォレットに存在する証明書署名リクエスト、証明書や証明書チェーンまたは信頼できる証明書を、指定されたコンポーネント・インスタンスのファイルにエクスポートします。DNは、エクスポートするオブジェクトを示します。

6.9.8.2 構文

exportWalletObject('instName', 'compName', 'compType', 'walletName', 'password', 'type', 'path', 'DN')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。

walletName

ウォレット・ファイルの名前を指定します。

password

ウォレットのパスワードを指定します。

type

エクスポートするウォレット・オブジェクトのタイプを指定します。有効な値は、「CertificateRequest」、「Certificate」、「TrustedCertificate」または「TrustedChain」です。

path

ファイルbase64.txtとしてオブジェクトをエクスポートする先のディレクトリの絶対パスを指定します。

DN

エクスポートするウォレット・オブジェクトの識別名を指定します。


6.9.8.3

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1の、wallet1内のDN cn=www.acme.comの証明書署名リクエストがエクスポートされます。証明書署名リクエストは、ディレクトリ/tmpの下にエクスポートされます。

wls:/mydomain/serverConfig> exportWalletObject('inst1', 'ohs1', 'ohs','wallet1', 'password', 'CertificateRequest', '/tmp','cn=www.acme.com')

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1の、wallet1内のDN cn=www.acme.comの証明書がエクスポートされます。証明書または証明書チェーンは、ディレクトリ/tmpの下にエクスポートされます。

wls:/mydomain/serverConfig> exportWalletObject('inst1', 'ohs1', 'ohs','wallet1', 'password', 'Certificate', '/tmp','cn=www.acme.com')

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1の、wallet1内のDN cn=www.acme.comの信頼できる証明書がエクスポートされます。信頼できる証明書は、ディレクトリ/tmpの下にエクスポートされます。

wls:/mydomain/serverConfig> exportWalletObject('inst1', 'ohs1', 'ohs','wallet1', 'password', 'TrustedCertificate', '/tmp','cn=www.acme.com')

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1の、wallet1内のDN cn=www.acme.comの証明書チェーンがエクスポートされます。証明書または証明書チェーンは、ディレクトリ/tmpの下にエクスポートされます。

wls:/mydomain/serverConfig> exportWalletObject('inst1', 'ohs1', 'ohs','wallet1', 'password', 'TrustedChain', '/tmp','cn=www.acme.com')

6.9.9 getSSL

構成されたSSL属性を一覧表示するオンライン・コマンドです。

6.9.9.1 説明

このコマンドにより、指定されたコンポーネント・リスナーに構成されたSSL属性を一覧表示します。

6.9.9.2 構文

getSSL('instName', 'compName', 'compType', 'listener')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。

listener

コンポーネント・リスナーの名前を指定します。


6.9.9.3

次のコマンドにより、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1のリスナーsslport1で構成されるSSL属性が表示されます。

wls:/mydomain/serverConfig> getSSL('inst1', 'ohs1', 'ohs', 'sslport1')

6.9.10 getWalletObject

Oracleウォレットの証明書やその他のオブジェクトに関する情報を表示するオンライン・コマンドです。

6.9.10.1 説明

このコマンドにより、指定されたコンポーネント・インスタンスのOracleウォレットに存在する特定の証明書署名リクエスト、証明書または信頼できる証明書を表示します。ウォレット・オブジェクトは、listWalletObjectsコマンドで指定される索引番号で示されます。証明書または信頼できる証明書のDN、キー・サイズ、アルゴリズムなどの詳細データが表示されます。証明書署名リクエストの場合、サブジェクトDN、キー・サイズおよびアルゴリズムが表示されます。

6.9.10.2 構文

getWalletObject('instName', 'compName', 'compType', 'walletName', 'password', 'type', 'index')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。

walletName

ウォレット・ファイルの名前を指定します。

password

ウォレットのパスワードを指定します。

type

エクスポートするウォレット・オブジェクトのタイプを指定します。有効な値は、「CertificateRequest」、「Certificate」および「TrustedCertificate」です。

index

listWalletObjectsコマンドで返されるウォレット・オブジェクトの索引番号を指定します。


6.9.10.3

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1で、wallet1に存在する索引0のオブジェクトの証明書署名リクエスト詳細が表示されます。

wls:/mydomain/serverConfig> getKeyStoreObject('inst1', 'ohs1', 'ohs','wallet1','password', 'CertificateRequest', '0')

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1で、wallet1に存在する索引0のオブジェクトの証明書詳細が表示されます。

wls:/mydomain/serverConfig> getKeyStoreObject('inst1', 'ohs1', 'ohs','wallet1','password', 'Certificate', '0')

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1で、wallet1に存在する索引0のオブジェクトの信頼できる証明書の詳細が表示されます。

wls:/mydomain/serverConfig> getKeyStoreObject('inst1', 'ohs1', 'ohs','wallet1','password', 'TrustedCertificate', '0')

6.9.11 importWallet

Oracleウォレットをファイルからインポートするオンライン・コマンドです。

6.9.11.1 説明

このコマンドにより、管理用に指定されたコンポーネント・インスタンスに、Oracleウォレットをファイルからインポートします。インポートされるウォレットが自動ログイン・ウォレットの場合、ファイル・パスはcwallet.ssoを指す必要があります。ウォレットがパスワードで保護される場合は、ewallet.p12を指す必要があります。このウォレット名はこのコンポーネント・インスタンスで一意にする必要があります。

6.9.11.2 構文

importWallet('instName', 'compName', 'compType', 'walletName', 'password', 'filePath')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。

walletName

インポートするウォレットの名前を指定します。名前はコンポーネント・インスタンスで一意にする必要があります。

password

ウォレットのパスワードを指定します。

filePath

インポートするウォレット・ファイルの絶対パスを指定します。


6.9.11.3

次のコマンドでは、自動ログイン・ウォレット・ファイル/tmp/cwallet.ssowallet1としてOracle HTTP Serverインスタンスohs1にインポートされます。それ以降、そのウォレットはwallet1という名前で管理されます。これは自動ログイン・ウォレットのため、パスワードは渡しません。

wls:/mydomain/serverConfig> importWallet('inst1', 'ohs1', 'ohs', 'wallet1', '', '/tmp/cwallet.sso')

次のコマンドでは、パスワードで保護されたウォレット/tmp/ewallet.p12wallet2としてOracle HTTP Serverインスタンスohs1にインポートされます。それ以降、そのウォレットはwallet2という名前で管理されます。ウォレット・パスワードは、パラメータとして渡されます。

wls:/mydomain/serverConfig> importWallet('inst1', 'ohs1', 'ohs', 'wallet2', 'password', '/tmp/ewallet.p12')

6.9.12 importWalletObject

証明書やその他のオブジェクトをOracleウォレットにインポートするオンライン・コマンドです。

6.9.12.1 説明

このコマンドにより、証明書、信頼できる証明書または証明書チェーンが、指定されたコンポーネント・インスタンスのOracleウォレットにインポートされます。証明書をインポートする場合、証明書署名リクエストが生成されたウォレット・ファイルと同じファイルを使用します。

6.9.12.2 構文

importWalletObject('instName', 'compName', 'compType', 'walletName', 'password', 'type', 'filePath')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。

walletName

ウォレット・ファイルの名前を指定します。

password

ウォレットのパスワードを指定します。

type

インポートするウォレット・オブジェクトのタイプを指定します。有効な値は、「Certificate」、「TrustedCertificate」および「TrustedChain」です。

filePath

ウォレット・オブジェクトを含むファイルの絶対パスを指定します。


6.9.12.3

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1で、証明書チェーンがPKCS#7形式でファイルchain.txtからwallet1にインポートされます。

wls:/mydomain/serverConfig> importWalletObject('inst1', 'ohs1', 'ohs','wallet1', 'password', 'TrustedChain','/tmp/chain.txt')

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1で、証明書がファイルcert.txtからwallet1にインポートされます。

wls:/mydomain/serverConfig> > importWalletObject('inst1', 'ohs1', 'ohs','wallet1', 'password', 'Certificate','/tmp/cert.txt')

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1で、信頼できる証明書がファイルtrust.txtからwallet1にインポートされます。

wls:/mydomain/serverConfig> importWalletObject('inst1', 'ohs1', 'ohs','wallet1', 'password', 'TrustedCertificate','/tmp/trust.txt')

6.9.13 listWalletObjects

Oracleウォレットのすべてのオブジェクトを一覧表示するオンライン・コマンドです。

6.9.13.1 説明

このコマンドにより、指定されたコンポーネント・インスタンスのOracleウォレットに存在するすべての証明書署名リクエスト、証明書または信頼できる証明書が一覧表示されます。

6.9.13.2 構文

listWalletObjects('instName', 'compName', 'compType', 'walletName', password', 'type')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。

walletName

ウォレット・ファイルの名前を指定します。

password

ウォレットのパスワードを指定します。

type

一覧表示するウォレット・オブジェクトのタイプを指定します。有効な値は、「CertificateRequest」、「Certificate」および「TrustedCertificate」です。


6.9.13.3

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1の、wallet1内のすべての証明書署名リクエストが一覧表示されます。

wls:/mydomain/serverConfig> > listWalletObjects('inst1', 'ohs1', 'ohs','wallet1','password', 'CertificateRequest')

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1の、wallet1内のすべての証明書が一覧表示されます。

wls:/mydomain/serverConfig> listWalletObjects('inst1', 'ohs1', 'ohs','wallet1','password', 'Certificate')

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1の、wallet1内のすべての信頼できる証明書が一覧表示されます。

wls:/mydomain/serverConfig> listWalletObjects('inst1', 'ohs1', 'ohs','wallet1','password', 'TrustedCertificate')

6.9.14 listWallets

コンポーネント・インスタンスで構成されたすべてのウォレットを一覧表示するオンライン・コマンドです。

6.9.14.1 説明

このコマンドにより、指定したコンポーネント・インスタンスに構成されたすべてのウォレットが表示され、自動ログインウォレットが識別されます。

6.9.14.2 構文

listWallets('instName', 'compName', 'compType')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。


6.9.14.3

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1のすべてのウォレットが一覧表示されます。

wls:/mydomain/serverConfig> > listWallets('inst1', 'ohs1', 'ohs')

6.9.15 removeWalletObject

証明書やその他のオブジェクトをOracleウォレットから削除するオンライン・コマンドです。

6.9.15.1 説明

このコマンドにより、指定されたコンポーネント・インスタンスのOracleウォレットから1つの証明書署名リクエスト、証明書、信頼できる証明書またはすべての信頼できる証明書を削除します。DNは、削除するオブジェクトを示すために使用されます。

6.9.15.2 構文

removeWalletObject('instName', 'compName', 'compType', 'walletName', 'password', 'type', 'DN')
引数 定義

instName

アプリケーション・サーバー・インスタンスの名前を指定します。

compName

コンポーネント・インスタンスの名前を指定します。

compType

コンポーネントのタイプを指定します。有効な値は「ohs」です。

walletName

ウォレット・ファイルの名前を指定します。

password

ウォレットのパスワードを指定します。

type

削除するキーストア・オブジェクトのタイプを指定します。有効な値は、「CertificateRequest」、「Certificate」、「TrustedCertificate」または「TrustedAll」です。

DN

削除するウォレット・オブジェクトの識別名を指定します。


6.9.15.3

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1wallet1から、すべての信頼できる証明書が削除されます。DNを指定する必要はありません。DNパラメータにはnullを渡します(Noneと指定します)。

wls:/mydomain/serverConfig> removeWalletObject('inst1', 'ohs1', 'ohs','wallet1', 'password', 'TrustedAll',None)

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1の、wallet1からDN cn=www.acme.comで示される証明書署名リクエストが削除されます。

wls:/mydomain/serverConfig> removeWalletObject('inst1', 'ohs1', 'ohs','wallet1', 'password', 'CertificateRequest','cn=www.acme.com')

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1の、wallet1からDN cn=www.acme.comで示される証明書が削除されます。

wls:/mydomain/serverConfig> removeWalletObject('inst1', 'ohs1', 'ohs','wallet1', 'password', 'Certificate','cn=www.acme.com')

次のコマンドでは、アプリケーション・サーバー・インスタンスinst1のOracle HTTP Serverインスタンスohs1wallet1から、DN cn=www.acme.comで示される信頼できる証明書が削除されます。

wls:/mydomain/serverConfig> removeWalletObject('inst1', 'ohs1', 'ohs','wallet1', 'password', 'TrustedCertificate','cn=www.acme.com')

6.9.16 SSL用プロパティ・ファイル

SSL構成では、WLSTのconfigureSSLコマンドで使用する特定のプロパティ・ファイルを使用します。このファイルには、認証タイプ、暗号値、SSLバージョンなどの目的のSSL構成を指定するためのパラメータが含まれます。

異なるコンポーネントで複数のプロパティ・ファイルを管理する必要がある場合、わかりやすい名前を使用できます。たとえば、プロパティ・ファイルにohs-ssl-properties.propovd-ssl-properties.propなどの名前を付けることができます。

6.9.16.1 プロパティ・ファイルの構造

すべてのSSLプロパティ・ファイルは、一貫した構造を持ちます。

表6-3では、鍵の値の構造およびこれらのファイルの使用に関する詳細について説明しています。

表6-3 プロパティ・ファイルのパラメータ

必須? Oracle HTTP Serverで使用可能な値 用途

SSLEnabled

いいえ

true

false

いずれかの値

Ciphers

いいえ

SSL_RSA_WITH_RC4_128_MD5

SSL_RSA_WITH_RC4_128_SHA

SSL_RSA_WITH_3DES_EDE_CBC_SHA

SSL_RSA_WITH_DES_CBC_SHA

SSL_DH_anon_WITH_RC4_128_MD5

SSL_DH_anon_WITH_DES_CBC_SHA

SSL_DH_anon_WITH_3DES_EDE_CBC_SHA

TLS_RSA_WITH_AES_128_CBC_SHA

TLS_RSA_WITH_AES_256_CBC_SHA

1つまたは複数のカンマ区切りの値

SSLVersions

いいえ

nzos_Version_3_0

nzos_Version_3_0_With_2_0_Hello

nzos_Version_1_0

1つまたは複数のカンマ区切りの値

CertValidation

いいえ

なし

crl

いずれかの値

CertValidation
Path

いいえ

file://crl_file_path

dir://crl_dir_path

CRLファイルのパス、またはCRLファイルを含むディレクトリ

KeyStore

いいえ

有効なウォレット名


TrustStore

いいえ

該当なし


AuthenticationType

いいえ

なし

サーバー

オプション

Mutual

任意の1つの値


表6-4に、デフォルト値を示します。

表6-4 パラメータのデフォルト値

Oracle HTTP Serverのデフォルト値

SSLEnabled

true

Ciphers

null

SSLVersions

null

CertValidation

なし

CertValidation
Path

null

KeyStore

デフォルト

TrustStore

-

Authentication
Type

サーバー



注意:

  • 少なくとも1つのDH_anon暗号は、SSL認証なしモードで使用する必要があります。その他すべてのモードでは、少なくとも1つのRSA暗号を使用する必要があります。

  • サーバー認証、相互認証またはオプションのクライアント認証でSSLを構成する場合、KeyStoreパラメータの値を指定する必要があります。

  • AES暗号のみが指定されている場合、SSLVersionsパラメータにはTLSv1またはnzos_Version_1_0を含める必要があります。

  • CRLベースの検証を実行する場合、CertValidationパラメータの値にはcrlを指定し、CertValidationPathパラメータの値はCRLファイルやディレクトリを指す必要があります。


6.9.16.2 プロパティ・ファイルの例

いくつかの例を使用して、プロパティの使用方法について説明します。

例1: 基本的なプロパティ・ファイル

SSLEnabled=true
AuthenticationType=None
CertValidation=none

このプロパティ・ファイルでは、認証なしモードが指定され、暗号およびSSLバージョンにはSSL構成時のデフォルト値が使用されます。認証タイプがNoneであるため、キーストア・プロパティおよびトラストストア・プロパティは指定しません。他の認証タイプでは、キーストアを指定する必要があります。

例2: 基本的なプロパティ・ファイル

SSLEnabled=
AuthenticationType=None
CertValidation=none

このプロパティ・ファイルは前述の例と同様ですが、SSLEnabledを値なしで明示的に指定している点が異なります。これは、キーを指定しないのと同じことです。どちらのケースも、デフォルト値が使用されます。

そのため、次の3つ設定は同じ意味になります。

  • 設定:

    SSLEnabled=true
    

    ここでは、値trueを明示的に指定しています。

  • 設定:

    SSLEnabled=
    

    ここでは値を指定していないので、SSLEnabledのデフォルト値(true)が使用されます。

  • SSLEnabledがプロパティ・ファイルに存在しない

    キーが存在しないので、デフォルト値(true)が使用されます。

例3: OHSのバージョンを含むプロパティ・ファイル

SSLEnabled=true
AuthenticationType=Mutual
SSLVersion=nzos_Version_3_0
CertValidation=crl
CertValidationPath=file:///tmp/file.crl
KeyStore=ohs1

このプロパティ・ファイルの内容は、次のとおりです。

  • 暗号のデフォルト値

  • キーストア

  • SSLバージョンv3

  • CRL検証が有効

  • 相互認証モード