4 セキュリティの構成

この章では、プロキシ・プラグインのセキュリティに関する作業について説明します。

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

プロキシ・プラグインでのSSLの使用

Secure Sockets Layer (SSL)プロトコルを使用して、プロキシ・プラグインとOracle WebLogic Serverの間の接続を保護できます。SSLプロトコルは、プロキシ・プラグインとOracle WebLogic Serverの間で渡されるデータに対する機密性と整合性を提供します。

プロキシ・プラグインでは、プロキシ・プラグインとOracle WebLogic Serverとの間の接続の保護にSSLを使用するかどうかの決定に、HTTPリクエストで指定された(通常はブラウザによって指定)トランスポート・プロトコル(HTTPまたはHTTPS)を使用しません。つまり、プロキシ・プラグインは、(通常はブラウザからの)HTTPリクエストでHTTPS (SSL)が使用されるかどうかには一切依存しません。

かわりに、プロキシ・プラグインでは、「Oracle WebLogic Serverプロキシ・プラグインのSSLパラメータ」で説明されているように、プロキシ・プラグインに対して構成したSSLパラメータを使用して、いつSSLを使用するかを決定します:

  • WebLogicSSLVersion - プロキシ・プラグインとOracle WebLogic Serverの間の通信に使用するSSLプロトコル・バージョンを指定します。
  • WLSSLWallet - Oracle WebLogic Serverの14.1.1.0プロキシ・プラグインは、Oracleウォレットを使用してSSL構成情報を格納します。ウォレットを構成するには、SSL構成パラメータWLSSLWalletを使用します。この目的のために、プロキシ・プラグインのディストリビューション内にorapkiユーティリティが用意されています。

    orapkiユーティリティでは、ウォレット、証明書失効リストなど、公開キー・インフラストラクチャ(PKI)の要素をコマンド行で管理するため、実行するタスクをスクリプトに組み込むことができます。これを使用して、PKIを保守するルーチン・タスクの多くを自動化できます。「証明書の検証とCRL管理にorapkiユーティリティを使用する方法」を参照してください。

  • SecureProxy - SecureProxyパラメータは、SSLを有効にするかどうかを決定します。

ノート:

Oracle WebLogic Server側で以前のバージョンのSSL/TLSを構成する方法の詳細は、『Oracle WebLogic Serverセキュリティの管理』weblogic.security.SSL.protocolVersionシステム・プロパティの使用に関する項を参照してください。

双方向SSLの場合、Oracle WebLogic Serverが双方向SSL用に構成され、クライアント証明書をリクエストすると、プロキシ・プラグイン(SSLクライアント)で双方向SSLが自動的に使用されます。Oracle WebLogic Serverでの双方向SSLの構成の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプサーバー: 構成: SSLに関する項を参照してください。

クライアント証明書がリクエストされていない場合、プロキシ・プラグインはデフォルトで一方向SSLになります。

ノート:

Oracle WebLogic Server 14.1.1.0製品がOracle WebLogic Serverプロキシ・プラグインと同じシステムにインストールされている場合、ORACLE_HOME変数が有効なインストールを指している必要があります。そうでない場合、プロキシ・プラグインはSSLの初期化に失敗します。

たとえば、製品が正常に削除されなかったためにORACLE_HOMEが無効な場合、プロキシ・プラグインはSSLの初期化に失敗します。

この項には次のトピックが含まれます:

SSL用のライブラリの構成

Apache HTTP Server用Oracle WebLogic Server 14.1.1.0.0プロキシ・プラグインは、HTTP/2プロトコルをサポートしています。TLS経由のHTTP/2では、Application Layer Protocol Negotiation (ALPN) TLS拡張を使用して接続を迅速に暗号化します。OracleのNZライブラリではALPN拡張がサポートされていないため、プロキシ・プラグインはOpenSSLライブラリを使用するように書き換えられています。したがって、既存のデプロイメントでOracle WebLogic Serverとの通信にSSLを使用するには、「環境変数の構成」で説明されている小さな変更が必要です。

ノート:

Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインの現在の実装では、Apache SSLでの複数の証明書ファイルの使用はサポートされていません。

この項には次のトピックが含まれます:

環境変数の構成

Oracle WebLogic Serverプロキシ・プラグインは、Oracleウォレットを使用して、秘密キー、ユーザー証明書チェーン、信頼できる証明書のリストなどのSSL情報を格納します。OpenSSL APIは、このようなウォレットの内容を読み取れません。したがって、ユーザー指定のウォレットの内容を、OpenSSL APIが読み取ることができる形式にエクスポートする必要があります。ウォレットの内容は、ファイル・システムにPEM形式のファイルとしてエクスポートされます。ユーザー指定のウォレットごとに、自動ログイン・ウォレットが存在する同じファイル・システム・パスに3つのファイルを作成できます:

  • key.PEM: 秘密キーがウォレットに存在する場合のPEM形式の秘密キーを含むパスフレーズ保護ファイル。
  • user.crt: ユーザー証明書がウォレットに存在する場合のPEM形式のユーザー証明書。
  • trusted_certs.crt: PEM形式の信頼できる証明書チェーン。

前述したユーザー・ウォレットのエクスポートのために、export_walletという新しいプログラムがプロキシ・プラグインのzipファイルに含まれています。このプログラムのために、環境変数JAVA_HOMEおよびPLUGINS_HOMEが設定されている必要があります。「インストールの前提条件」を参照してください。

一方向SSL用のプロキシ・プラグインの構成

一方向SSLを構成するには、次のステップに従ってください。

これらのステップでは、Oracle WebLogic Serverがインストールされているシステムでkeytoolコマンドを実行し、Oracle WebLogic Server 14.1.1.0プロキシ・プラグインがインストールされているシステムでorapkiコマンドを実行します。

ノート:

この項の例では、Oracle WebLogic ServerデモのCAを使用します。プロキシ・プラグインを本番環境で使用している場合は、プロキシ・プラグインおよびOracle WebLogic Serverに対して信頼できるCAが適切に構成されていることを確認してください。
  1. SSL用にOracle WebLogic Serverを構成します。『Oracle WebLogic Serverセキュリティの管理』SSLの構成に関する項を参照してください。
  2. orapkiユーティリティを使用してOracleウォレットを作成します。
    orapki wallet create -wallet mywallet -auto_login_only

    『Oracle Fusion Middlewareの管理』orapkiユーティリティを使用した証明書検証およびCRL管理に関する項を参照してください。

    ノート:

    ウォレットにアクセスできるのは、そのウォレットを作成したユーザーのみです(Windowsの場合はSYSTEMアカウント)。

    Apache HTTP ServerはWindowsではSYSTEMアカウントとして、UNIXでは作成したユーザーとして実行されるため、Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインには、通常これで十分です。

    Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインを実行するユーザーがウォレットを作成したユーザー(またはWindowsの場合はSYSTEMアカウント)と異なる場合、ウォレットの作成後にコマンドcacls (Windows)またはchmod (UNIX)を実行して、ウォレットへのアクセス権をユーザーに付与する必要があります。たとえば:

    cacls <wallet_path>\cwallet.sso /e /g IUSR:R

  3. Oracle WebLogic Server信頼証明書をOracleウォレットにインポートします。
    orapki wallet add -wallet mywallet -trusted_cert -cert <cert_file_name> -auto_login_only
  4. バックエンドのOracle WebLogic Serverインスタンスのバージョンが10.3.4以降の場合は、次のステップに従ってください。
    1. Oracle WebLogic Server管理コンソールにログインします。
    2. 「ドメイン構造」ペインで、「環境」ノードを開きます。
      • Apache HTTP Serverからのリクエストをプロキシするサーバー・インスタンスがクラスタ内にある場合は、「クラスタ」を選択します。
      • それ以外の場合は、「サーバー」を選択します。
    3. Apache HTTP Serverからリクエストをプロキシするサーバーまたはクラスタを選択します。
    4. 「構成: 一般」タブで、「詳細」セクションまでスクロール・ダウンし、展開します。
    5. 次のいずれかの操作を行います。
      目的 選択オプション

      一方向SSLの有効化

      WebLogicプラグインの有効化

      認証にクライアント証明書が使用される双方向SSLの有効化

      クライアント証明書プロキシの有効化

      クライアント証明書による双方向SSLの有効化

      両方

    6. ステップ4b「サーバー」を選択した場合は、Apache HTTP Serverからリクエストをプロキシするほかのサーバーに対して、ステップ3ステップ4を繰り返します。
    7. 「保存」をクリックします。

    変更内容を有効にするには、サーバー・インスタンスを再起動する必要があります。

  5. ブラウザからhttp://host:port/mywebapp/my.jspにリクエストを送信し、レスポンスを確認します。

プロキシ・プラグインとOracle WebLogic Serverの間の双方向SSLの構成

Oracle WebLogic Serverが双方向SSL用に構成されている場合、プロキシ・プラグインはユーザー証明書をOracle WebLogic Serverに転送します。Oracle WebLogic Serverがユーザー証明書を検証できるかぎり、双方向SSLを確立できます。

このステップでは、Oracle WebLogic Serverがインストールされているシステムでkeytoolコマンドを実行します。14.1.1.0プロキシ・プラグインがインストールされているシステムでorapkiコマンドを実行します。

双方向SSLを構成するには:
  1. 「一方向SSL用のプロキシ・プラグインの構成」で説明されているステップを実行します。
  2. クライアント証明書の提示を必要とするOracle WebLogic Server SSL構成オプション(双方向SSL用)を設定します。Oracle WebLogic Server管理コンソール・オンライン・ヘルプ双方向SSLの構成に関する項を参照してください。
  3. Oracleウォレットから証明書リクエストを生成します:
    1. 証明書リクエストをOracleウォレットに追加します。
      orapki wallet add -wallet wallet_location -dn user_dn -keySize 512|1024|2048
    2. Oracleウォレットから証明書リクエストをエクスポートします:
      orapki wallet export -wallet wallet_location -dn certificate_request_dn -request certificate_request_filename

      『Oracle Fusion Middlewareの管理』orapkiを使用したOracleウォレットからの証明書および証明書リクエストのエクスポートに関する項を参照してください。

  4. ステップ3でエクスポートされた証明書リクエストを使用し、認証局(CA)またはその他のメカニズムを使用して証明書を作成します。
  5. ユーザー証明書を追加する前に、ユーザー証明書の証明書チェーン内のすべての信頼できる証明書をインポートします。証明書チェーンには、中間認証局とルート認証局が含まれます。
    次のコマンドを使用して、ルートCA証明書を信頼できる証明書としてインポートします:
    orapki wallet add -wallet wallet_location -trusted_cert -cert root_certificate_location
    中間CA証明書を信頼できる証明書としてインポートします。中間CA証明書が複数ある場合は、中間CAごとに-certオプションの場所を変更して、次のコマンドを実行します。
    orapki wallet add -wallet wallet_location -trusted_cert -cert intermediate_certificate_location

    データベース・セキュリティ・ガイドorapkiを使用したOracleウォレットへの証明書および証明書リクエストの追加に関する項を参照してください。

  6. CAによって署名された証明書をユーザー証明書としてOracleウォレットにインポートします。
    orapki wallet add -wallet wallet_location -user_cert -cert certificate_location
  7. CA証明書を信頼できる証明書としてWebLogicトラスト・ストアにインポートします。Oracle WebLogic Serverで、その証明書を信頼する必要があります。
    keytool -file certificate_location -importcert -trustcacerts -keystore DemoTrust.jks -storepass <passphrase>

MD5アルゴリズムを使用して署名された証明書の置換

SSLを使用してOracle WebLogic Serverに接続する場合は、ウォレットでMD5で署名された証明書リクエストまたは証明書がSHA-2署名証明書に置き換えられていることを確認します。置き換えられていない場合、サーバーの起動に失敗します。

この項には次のトピックが含まれます:

証明書の署名アルゴリズムの確認
証明書の署名アルゴリズムを確認するには:
  1. orapkiコマンドを使用して、SSL証明書の識別名(DN)を取得します。
    ${PLUGINS_HOME}/bin/orapki wallet display -wallet <wallet__location>

    たとえば:

    • CA署名ユーザー証明書を含むウォレットの内容:
      ${PLUGINS_HOME}/bin/orapki  wallet display -wallet /tmp/test_wallet

      出力例:

      Oracle PKI Tool: Version 12.2.1.4.0
      Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
      
      Requested Certificates: 
      User Certificates:
      Subject: CN=localhost,O=FOR TESTING ONLY
      Trusted Certificates: 
      Subject: CN=im_ca,OU=O,O=FOR TESTING ONLY
      Subject: CN=root_ca,OU=O,O=FOR TESTING ONLY

      この例では、ユーザー証明書は中間CAで署名されています。したがって、信頼できる証明書に完全な信頼チェーンが表示されます。

      • ユーザー証明書の識別名は、"CN=localhost,O=FOR TESTING ONLY"です
      • 中間証明書の識別名は、"CN=im_ca,OU=O,O=FOR TESTING ONLY"です
      • ルート証明書の識別名は、"CN=root_ca,OU=O,O=FOR TESTING ONLY"です
    • 自己署名ユーザー証明書を含むウォレットの内容:
      ${PLUGINS_HOME}/bin/orapki  wallet display -wallet /tmp/test_wallet

      出力例:

      Oracle PKI Tool : Version 12.2.1.4.0
      Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
      
      Requested Certificates: 
      User Certificates:
      Subject: CN=localhost,O=FOR TESTING ONLY
      Trusted Certificates: 
      Subject: CN=localhost,O=FOR TESTING ONLY

      自己署名ユーザー証明書の識別名は、"CN=localhost,O=FOR TESTING ONLY"です

  2. ウォレットに存在する証明書をエクスポートします。
    ${PLUGINS_HOME}/bin/orapki  wallet export -wallet <wallet_Location> -dn 'DN_string' -cert <certificate_file>
    たとえば:
    • ユーザー証明書をエクスポートします。
      ${PLUGINS_HOME}/bin/orapki  wallet export -wallet <wallet_Location> -dn 'CN=localhost,O=FOR TESTING ONLY' -cert user.crt

      このステップの詳細は、データベース・セキュリティ・ガイドorapkiウォレットのエクスポートに関する項を参照してください。

    • 中間およびルートCA証明書をエクスポートします。
      ${PLUGINS_HOME}/bin/orapki  wallet export -wallet <wallet_Location> -dn 'CN=im_ca,OU=O,O=FOR TESTING ONLY' -cert im_ca.crt
      ${PLUGINS_HOME}/bin/orapki  wallet export -wallet <wallet_Location> -dn 'CN=root_ca,OU=O,O=FOR TESTING ONLY' -cert root_ca.crt
  3. keytoolを使用して、<certificate_file>を署名する際に使用する署名アルゴリズムを確認します:
    $JAVA_HOME/bin/keytool -printcert -file <certificate_file>
    たとえば、証明書がMD5で署名されている場合、次のサンプル・コマンド出力に示すように、Signature algorithm nameMD5withRSAに設定されます:
    $JAVA_HOME/bin/keytoolkey -printcert -file  user.crt

    出力例:

    Owner: CN=localhost,OU=O,O=FOR TESTING ONLY
    Issuer: CN=localhost,OU=O,O=FOR TESTING ONLY
    Serial number: –--
    Valid from: –--
    Certificate fingerprints:
      MD5:  –--
      SHA1: –--
      SHA256: –--
      Signature algorithm name: MD5withRSA
      Version: 1

    ノート:

    チェーン内のユーザー証明書および信頼できる証明書のいずれかがMD5アルゴリズムで署名されている場合、SHA-2アルゴリズムで署名された新しい証明書で新しいウォレットを作成するか、既存の証明書をSHA-2署名アルゴリズムで署名された証明書に置き換えることができます。
orapkiコマンドで使用されるパラメータのリスト:

表4-1 コマンド・パラメータ

パラメータ 説明

-wallet

ウォレットの場所を指定します。

-dn

証明書の識別名を指定します。

-cert

ツールがエクスポートした証明書を配置するディレクトリの場所を指定します。

SHA-2アルゴリズムで署名された証明書を追加する新規ウォレットの作成
新しいウォレットを作成するには:
  1. ウォレットを作成します。
    ${PLUGINS_HOME}/bin/orapki  orapki wallet create -wallet  <wallet_location> -auto_login_only

    たとえば:

    ${PLUGINS_HOME}/bin/orapki wallet create -wallet test_wallet -auto_login_only

    出力例:

    Oracle PKI Tool : Version 12.2.1.4.0
    Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Operation is successfully completed.
    test_walletの内容を確認します:
    $ls test_wallet
    cwallet.sso

    orapkiを使用したウォレットの作成の詳細は、『Oracle Fusion Middlewareの管理』orapkiを使用したOracleウォレットの作成と表示に関する項を参照してください。

  2. ユーザー証明書をウォレットに追加しますユーザー証明書は、自己署名またはCA署名にできます。本番では、CA署名証明書を使用することをお薦めします。
    1. 自己署名付きユーザー証明書を追加します。
      1. 次のコマンドを実行します。
        ${PLUGINS_HOME}/bin/orapki wallet add -wallet <wallet_Location> -dn 'DN_string' -keysize 512|1024|2048|4096|8192|16384 -sign_alg sha256 -self_signed -validity 9125 [-pwd <pwd>] | [-auto_login_only]
        たとえば:
        ${PLUGINS_HOME}/bin/orapki wallet add -wallet test_wallet -dn 'CN=localhost,O=FOR TESTING ONLY' -keysize 2048  -sign_alg sha256 -self_signed -validity 9125 -auto_login_only

        出力例:

        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        
        Operation is successfully completed.
      2. 自己署名証明書をウォレットに追加した後、ウォレットの内容をリストします:
        ${PLUGINS_HOME}/bin/orapki wallet display -wallet <wallet_location>
        たとえば:
        ${PLUGINS_HOME}/bin/orapki wallet display -wallet test_wallet

        出力例:

        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        
        Requested Certificates: 
        User Certificates:
        Subject: CN=localhost,O=FOR TESTING ONLY
        Trusted Certificates: 
        Subject: CN=localhost,O=FOR TESTING ONLY

        ウォレットへの証明書の追加の詳細は、『Oracle Fusion Middlewareの管理』Oracleウォレットへのルート証明書の追加に関する項を参照してください。

    2. CA署名ユーザー証明書を追加します。
      1. 証明書リクエストをOracleウォレットに追加します。
        orapki wallet add -wallet wallet_location -dn user_dn -keySize 512|1024|2048 [-pwd <pwd>] | [-auto_login_only] 
        たとえば:
        ${PLUGINS_HOME}/bin/orapki wallet add -wallet test_wallet -dn "CN=localhost,O=testing_only" -keysize 2048 -auto_login_only

        出力例:

        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Operation is successfully completed
         
        Wallet content after adding certificate request
        ${PLUGINS_HOME}/bin/orapki wallet display -wallet /scratch/shichoud/test_wallet 
        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Requested Certificates: 
        Subject:        CN=localhost,O=testing_only
        User Certificates:
        Trusted Certificates:
        ...
      2. Oracleウォレットから証明書リクエストをエクスポートします:
        orapki wallet export -wallet wallet_location -dn certificate_request_dn -request certificate_request_filename
        たとえば:
        ${PLUGINS_HOME}/bin/orapki wallet export -wallet test_wallet -dn "CN=localhost,O=testing_only" -request user.csr

        出力例:

        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Operation is successfully completed.
        証明書の内容を表示するには、次のコマンドを実行します:
        cat user.csr

        出力例:

        -----BEGIN NEW CERTIFICATE REQUEST-----
        MIICcDCCAVgCAQAwKzEVMBMGA1UECgwMdGVzdGluZ19vbmx5MRIwEAYDVQQDEwls
        ...
        ...
        WnDd1cweMAH+1/D1C4Gi7Gvhi2Axw18H60lmZcU3JXv2bhu8QxZI9N6sI1DjU2Mg
        l6EH2w==

        『Oracle Fusion Middlewareの管理』orapkiを使用したOracleウォレットからの証明書および証明書リクエストのエクスポートに関する項を参照してください。

      3. ステップ3でエクスポートされた証明書リクエストを使用し、認証局(CA)またはその他のメカニズムを使用して証明書を作成します。
      4. ユーザー証明書を追加する前に、ユーザー証明書の証明書チェーン内のすべての信頼できる証明書をインポートします。証明書チェーンには、中間認証局とルート認証局が含まれます。
        • 次のコマンドを使用して、ルートCA証明書を信頼できる証明書としてインポートします:
          orapki wallet add -wallet wallet_location -trusted_cert -cert root_certificate_location [-pwd <pwd>] | [-auto_login_only]
          たとえば:
          ${PLUGINS_HOME}/bin/orapki wallet add -wallet test_wallet -trusted_cert -cert Root_CA.crt -auto_login_only

          出力例:

          Oracle PKI Tool : Version 12.2.1.4.0
          Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
          Operation is successfully completed.
        • 中間CA証明書を信頼できる証明書としてインポートします。中間CA証明書が複数ある場合は、中間CAごとに-certオプションの場所を変更して、次のコマンドを実行します。
          orapki wallet add -wallet wallet_location -trusted_cert -cert intermediate_certificate_location [-pwd <pwd>] | [-auto_login_only]
          たとえば:
          ${PLUGINS_HOME}/bin/orapki  wallet add -wallet test_wallet -trusted_cert -cert IM_CA.crt -auto_login_only

          出力例:

          Oracle PKI Tool : Version 12.2.1.4.0
          Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
          Operation is successfully completed.
        ルートCAおよび中間CAのインポート後にウォレットを表示します:
        ${PLUGINS_HOME}/bin/orapki wallet display -wallet test_wallet

        出力例:

        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Requested Certificates: 
        Subject:        CN=localhost,O=testing_only
        User Certificates:
        Trusted Certificates: 
        Subject:        CN=im_ca,OU=O,O=oracle,C=IN
        Subject:        CN=root_ca,OU=O,O=oracle,C=IN
      5. CAによって署名された証明書をユーザー証明書としてOracleウォレットにインポートします。
        orapki wallet add -wallet wallet_location -user_cert -cert certificate_location [-pwd <pwd>] | [-auto_login_only]
        たとえば:
        ${PLUGINS_HOME}/bin/orapki wallet add -wallet test_wallet -user_cert -cert user_1.crt -auto_login_only

        出力例:

        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Operation is successfully completed.
        中間CAから署名されたユーザー証明書を追加した後のウォレットの内容:
        ${PLUGINS_HOME}/bin/orapki wallet display -wallet test_wallet

        出力例:

        Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Requested Certificates: 
        User Certificates:
        Subject:        CN=localhost,O=testing_only
        Trusted Certificates: 
        Subject:        CN=im_ca,OU=O,O=oracle,C=IN
        Subject:        CN=root_ca,OU=O,O=oracle,C=IN
  3. バックエンド・サーバー証明書を信頼できる証明書として追加します。
    1. バックエンド・サーバー証明書が自己署名証明書の場合は、信頼できる証明書としてインポートします。
      1. バックエンド・サーバー証明書を表示します:
        ${PLUGINS_HOME}/bin/orapki cert display -cert <backend_server_certificate> -complete
        たとえば:
        ${PLUGINS_HOME}/bin/orapki  cert display -cert backend.crt -complete

        出力例:

        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
         
        { fingerprint = ... holder = ... CN=Backend_Server,O=testing_only, issuer = CN=Backend_Server,O=testing_only, ...
        ]} } }
      2. バックエンド・サーバー証明書を信頼できる証明書としてウォレットにインポートします:
        ${PLUGINS_HOME}/bin/orapki wallet add -wallet test_wallet --trusted_cert -cert <back_end_sever_crt> -auto_login_only
        たとえば:
        ${PLUGINS_HOME}/bin/orapki wallet add -wallet test_wallet --trusted_cert -cert <back_end_sever_crt> -auto_login_only

        出力例:

        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Operation is successfully completed.
      3. バックエンド・サーバー証明書を信頼できる証明書として追加した後、ウォレットの内容を表示します:
        ${PLUGINS_HOME}/bin/orapki wallet display -wallet <wallet_path>
        たとえば:
        ${PLUGINS_HOME}/bin/orapki wallet display -wallet test_wallet

        出力例:

        Version 12.2.1.4.0
          
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Requested Certificates:
        User Certificates:
        ...
        Trusted Certificates:
        ...
        Subject: CN=Backend_Server,O=testing_only
    2. バックエンド・サーバー証明書がCA認証局で署名されている場合は、信頼チェーンをインポートします:
      1. バックエンド・サーバー証明書が中間CAによって署名されている場合は、ルートCAおよび中間CA証明書を信頼できる証明書としてウォレットにインポートします:
        ${PLUGINS_HOME}/bin/orapki wallet add -wallet <wallet_Location> -trusted_cert -cert <CA_certificate> -auto_login_only
        • 例1:
          ${PLUGINS_HOME}/bin/orapki wallet add -wallet test_wallet -trusted_cert -cert Root_CA.crt -auto_login_only

          出力例:

          Oracle PKI Tool : Version 12.2.1.4.0
          Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
          Operation is successfully completed.
        • 例2:
          ${PLUGINS_HOME}/bin/orapki wallet add -wallet test_wallet -trusted_cert -cert IM_CA.crt -auto_login_only

          出力例:

          Oracle PKI Tool : Version 12.2.1.4.0
          Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
          Operation is successfully completed.
      2. バックエンド・サーバーのトラスト・チェーンの追加後にウォレットの内容を表示します:
        ${PLUGINS_HOME}/bin/orapki wallet display -wallet <wallet_location>
        たとえば:
        ${PLUGINS_HOME}/bin/orapki wallet display -wallet test_wallet

        出力例:

        Version 12.2.1.4.0
        
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Requested Certificates:
        User Certificates:
        ...
        Trusted Certificates:
        ...
        Subject: CN=im_ca,OU=O,O=oracle,C=IN
        Subject: CN=root_ca,OU=O,O=oracle,C=IN
orapkiコマンドで使用されるパラメータのリスト:

表4-2 コマンド・パラメータ

パラメータ 説明

-wallet

ウォレットの場所を指定します。

-dn

証明書の識別名を指定します。

-trusted_cert

信頼できる証明書であることを指定します。

-user_cert

ユーザー証明書であることを指定します。

-pwd

ウォレットがパスワードで保護されている場合、ウォレット・パスワードを指定します。

-auto_login_only

ウォレットがauto_login_onlyかどうかを指定します。

-request

作成する証明書の証明書リクエストの場所を指定します。

-cert

証明書のディレクトリの場所を指定します。

-keysize

証明書のキーサイズを指定します。

-self_signed

ツールにルート証明書を作成させます。

-validity

現在の日付から数えて、ルート証明書が有効になる日数を指定します。

-sign_alg

使用する署名アルゴリズムを指定します。

既存の証明書のSHA-2署名付き証明書への置換

MD5またはSHA-2アルゴリズムで署名された証明書がウォレットに混在している場合は、MD5アルゴリズムで署名されている証明書のみを削除し、SHA-2アルゴリズムで署名されている証明書を保持できます。

たとえば:
${PLUGINS_HOME}/bin/orapki wallet display -wallet test_wallet
出力例:
Oracle PKI Tool : Version 12.2.1.4.0
Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
Requested Certificates:
User Certificates:
Subject: CN=localhost,O=FOR TESTING ONLY
Trusted Certificates:
Subject: CN=localhost,O=FOR TESTING ONLY
Subject: CN=im_ca,OU=O,O=oracle,C=IN
Subject: CN=root_ca,OU=O,O=oracle,C=IN
Subject: CN=test_SHA2_signed_cert,OU=O,O=oracle,C=IN

test_wallet contains following certificates signed with MD5 algorithm :
Self-signed user certificate : Subject: CN=localhost,O=FOR TESTING ONLY
Trusted certificates :
Subject: CN=im_ca,OU=O,O=oracle,C=IN
Subject: CN=root_ca,OU=O,O=oracle,C=IN

ユーザー証明書および信頼できる証明書がMD5で署名されている証明書リクエストを特定したら、次のステップを実行してウォレットから削除します:

  1. CA署名または自己署名付きユーザー証明書を削除します:
    1. 証明書が自己署名型かCA署名型かを確認します:
      1. ウォレットの内容を表示し、識別名を取得します:
        ${PLUGINS_HOME}/bin/orapki   wallet display -wallet <wallet_location>
        たとえば:
        ${PLUGINS_HOME}/bin/orapki   wallet display -wallet test_wallet

        出力例:

        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Requested Certificates:
        User Certificates:
        Subject: CN=localhost,O=FOR TESTING ONLY
        Trusted Certificates:
        Subject: CN=localhost,O=FOR TESTING ONLY
        Subject: CN=im_ca,OU=O,O=oracle,C=IN
        Subject: CN=root_ca,OU=O,O=oracle,C=IN
        Subject: CN=test_SHA2_singed_cert,OU=O,O=oracle,C=IN

        ユーザー証明書の識別名は、"CN=localhost,O=FOR TESTING ONLY"です

        display -walletコマンドは、ウォレットに存在するユーザー証明書および信頼できる証明書を表示します。

      2. ユーザー証明書をファイルにエクスポートします。
        ${PLUGINS_HOME}/bin/orapki  wallet export -wallet <wallet_Location> -dn 'DN_string' -cert <certificate_file>
        たとえば:
        ${PLUGINS_HOME}/bin/orapki  wallet export -wallet <wallet_Location> -dn 'CN=localhost,O=FOR TESTING ONLY' -cert user.crt
      3. ユーザー証明書を表示します。
        ${PLUGINS_HOME}/bin/orapki  cert display -cert <user_cert>
        たとえば:
        • 自己署名証明書の場合、次に示すように、SubjectおよびIssuerの名前は同じです:
          ${PLUGINS_HOME}/bin/orapki  cert display -cert user.crt

          出力例:

          Oracle PKI Tool : Version 12.2.1.4.0
          Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
          
          Subject:        CN=localhost,O=FOR TESTING ONLY
          Issuer:         CN=localhost,O=FOR TESTING ONLY
          Valid Until:    Thu Oct 07 15:15:55 UTC 2117
        • CA署名証明書の場合、次に示すように、SubjectおよびIssuerの名前は異なります:
          ${PLUGINS_HOME}/bin/orapki  cert display -cert user.crt

          出力例:

          Oracle PKI Tool : Version 12.2.1.4.0
          Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
          
          Subject:  CN=localhost,O=FOR TESTING ONLY
          Issuer:    CN=im_ca,OU=O,O=FOR TESTING ONLY
          Valid Until:    Thu Oct 07 15:15:55 UTC 2117
    2. 信頼できる証明書リストおよびユーザー証明書リストから自己署名証明書を削除し、自己署名証明書に関連付けられた証明書リクエストも削除します:
      ${PLUGINS_HOME}/bin/orapki wallet remove -wallet < wallet_location > -dn 'DN_string' -trusted_cert [-pwd <pwd>] | [-auto_login_only]
      ${PLUGINS_HOME}/bin/orapki wallet remove -wallet < wallet_location > -dn 'DN_string' -user_cert [-pwd <pwd>] | [-auto_login_only]
      ${PLUGINS_HOME}/bin/orapki wallet remove -wallet < wallet_location > -dn 'DN_string' -cert_req [-pwd <pwd>] | [-auto_login_only]
    3. ユーザー証明書がCA署名されている場合は、ユーザー証明書を削除します:
      ${PLUGINS_HOME}/bin/orapki wallet remove -wallet <wallet_location> -dn 'DN_string' -user_cert [-pwd <pwd>] | [-auto_login_only]
    4. MD5アルゴリズムを使用して署名された信頼できる証明書を削除します:
      ${PLUGINS_HOME}/bin/orapki wallet remove -wallet < wallet_location > -dn 'DN_string' -trusted_cert [-pwd < pwd >] | [-auto_login_only]
    5. MD5アルゴリズムを使用して署名された証明書リクエストを削除します:
      ${PLUGINS_HOME}/bin/orapki wallet remove -wallet < wallet_location > -dn 'DN_string' -cert_req [-pwd <pwd>] | [-auto_login_only]
  2. 証明書を作成してウォレットにインポートします:
    1. SHA-2アルゴリズムで署名された自己署名ユーザー証明書を追加します:
      ${PLUGINS_HOME}/bin/orapki wallet add -wallet <wallet_Location> -dn 'DN_String' -keysize 2048 -sign_alg sha256 -self_signed -validity 9125 [-pwd <pwd>] | [-auto_login_only]
    2. SHA-2アルゴリズムで署名されたCA署名付きユーザー証明書を追加します:
      1. 証明書リクエストをOracleウォレットに追加します。
        orapki wallet add -wallet wallet_location -dn user_dn -keySize 512|1024|2048 [-pwd <pwd>] | [-auto_login_only]
        たとえば:
        ${PLUGINS_HOME}/bin/orapki wallet add -wallet test_wallet -dn "CN=localhost,O=testing_only" -keysize 2048 -auto_login_only

        出力例:

        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Operation is successfully completed
         
        Wallet content after adding certificate request
        ${PLUGINS_HOME}/bin/orapki wallet display -wallet /scratch/shichoud/test_wallet 
        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Requested Certificates: 
        Subject:        CN=localhost,O=testing_only
        User Certificates:
        Trusted Certificates:
      2. Oracleウォレットから証明書リクエストをエクスポートします:
        orapki wallet export -wallet wallet_location -dn certificate_request_dn -request certificate_request_filename
        たとえば:
        ${PLUGINS_HOME}/bin/orapki wallet export -wallet test_wallet -dn "CN=localhost,O=testing_only" -request user.csr

        出力例:

        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Operation is successfully completed.
        証明書の内容を表示するには、次のコマンドを実行します:
        cat user.csr

        出力例:

        -----BEGIN NEW CERTIFICATE REQUEST-----
        MIICcDCCAVgCAQAwKzEVMBMGA1UECgwMdGVzdGluZ19vbmx5MRIwEAYDVQQDEwls
        ...
        ...
        WnDd1cweMAH+1/D1C4Gi7Gvhi2Axw18H60lmZcU3JXv2bhu8QxZI9N6sI1DjU2Mg
        l6EH2w==

        『Oracle Fusion Middlewareの管理』orapkiを使用したOracleウォレットからの証明書および証明書リクエストのエクスポートに関する項を参照してください。

      3. ステップ3でエクスポートされた証明書リクエストを使用し、認証局(CA)またはその他のメカニズムを使用して証明書を作成します。
      4. ユーザー証明書を追加する前に、ユーザー証明書の証明書チェーン内のすべての信頼できる証明書をインポートします。証明書チェーンには、中間認証局とルート認証局が含まれます。
        • 次のコマンドを使用して、ルートCA証明書を信頼できる証明書としてインポートします:
          orapki wallet add -wallet wallet_location -trusted_cert -cert root_certificate_location [-pwd <pwd>] | [-auto_login_only]
          たとえば:
          ${PLUGINS_HOME}/bin/orapki wallet add -wallet test_wallet -trusted_cert -cert Root_CA.crt -auto_login_only

          出力例:

          Oracle PKI Tool : Version 12.2.1.4.0
          Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
          Operation is successfully completed.
        • 中間CA証明書を信頼できる証明書としてインポートします。中間CA証明書が複数ある場合は、中間CAごとに-certオプションの場所を変更して、次のコマンドを実行します。
          orapki wallet add -wallet wallet_location -trusted_cert -cert intermediate_certificate_location [-pwd <pwd>] | [-auto_login_only]
          たとえば:
          ${PLUGINS_HOME}/bin/orapki wallet add -wallet test_wallet -trusted_cert -cert IM_CA.crt -auto_login_only

          出力例:

          Oracle PKI Tool : Version 12.2.1.4.0
          Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        ルートCAおよび中間CAのインポート後にウォレットを表示します:
        ${PLUGINS_HOME}/bin/orapki wallet display -wallet test_wallet

        出力例:

        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Requested Certificates: 
        Subject:        CN=localhost,O=testing_only
        User Certificates:
        Trusted Certificates: 
        Subject:        CN=im_ca,OU=O,O=oracle,C=IN
        Subject:        CN=root_ca,OU=O,O=oracle,C=IN
      5. CAによって署名された証明書をユーザー証明書としてOracleウォレットにインポートします。
        orapki wallet add -wallet wallet_location -user_cert -cert certificate_location [-pwd <pwd>] | [-auto_login_only]
        たとえば:
        ${PLUGINS_HOME}/bin/orapki wallet add -wallet test_wallet -user_cert -cert user_1.crt -auto_login_only

        出力例:

        Oracle PKI Tool : Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Operation is successfully completed.
        中間CAから署名されたユーザー証明書を追加した後のウォレットの内容:
        ${PLUGINS_HOME}/bin/orapki wallet display -wallet test_wallet

        出力例:

        Version 12.2.1.4.0
        Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
        Requested Certificates: 
        User Certificates:
        Subject:        CN=localhost,O=testing_only
        Trusted Certificates: 
        Subject:        CN=im_ca,OU=O,O=oracle,C=IN
        Subject:        CN=root_ca,OU=O,O=oracle,C=IN
orapkiコマンドで使用されるパラメータのリスト:

表4-3 コマンド・パラメータ

パラメータ 説明

-wallet

ウォレットの場所を指定します。

-dn

証明書の識別名を指定します。

-trusted_cert

信頼できる証明書であることを指定します。

-user_cert

ユーザー証明書であることを指定します。

-cert_req

証明書リクエストであることを指定します。

-pwd

ウォレットがパスワードで保護されている場合、ウォレット・パスワードを指定します。

-auto_login_only

ウォレットがauto_login_onlyかどうかを指定します。

-request

作成する証明書の証明書リクエストの場所を指定します。

-cert

証明書のディレクトリの場所を指定します。

-keysize

証明書のキーサイズを指定します。

-self_signed

ツールにルート証明書を作成させます。

-validity

現在の日付から数えて、ルート証明書が有効になる日数を指定します。

-sign_alg

使用する署名アルゴリズムを指定します。

MD5アルゴリズムで署名された証明書はサポートされない

セキュリティが損なわれるため、MD5アルゴリズムを使用して署名された証明書は推奨されていません。

これらの証明書は、Oracle WebLogic Server 14.1.1.0.0プロキシ・プラグインでサポートされなくなりました。MD5アルゴリズムの証明書の使用を有効にしていた環境変数ORACLE_SSL_ALLOW_MD5_CERT_SIGNATURESはサポートされなくなりました。MD5証明書がOracleウォレットに存在する場合、プロキシ・プラグインは起動を拒否します。

RSASSA-PSS署名アルゴリズムで署名された証明書の使用

RSASSA-PSS署名アルゴリズムで署名された証明書は非常にセキュアであり、Oracle WebLogic Server 14.1.1.0.0プロキシ・プラグインでサポートされます。

WebサーバーとバックエンドOracle WebLogic Serverの間の通信にTLSv1.3を使用する場合、RSASSA-PSS署名アルゴリズムで署名された証明書、およびRSASSA-PSSアルゴリズムを使用して生成された秘密キーをデプロイできます。これに必要なJDKの最小バージョンは、Oracle JDK 11.0.9またはOracle JDK 8u261-b12です。これらのバージョンのJDKのSunPKCS11プロバイダは、PKCS#11 v2.40のサポートで更新されました。このバージョンでは、対応するPKCS11メカニズムが基礎となるPKCS11ライブラリによってサポートされている場合、RSASSA-PSS署名のサポートが追加されます。

Oracle WebLogic Server 14.1.1.0.0プロキシ・プラグインでは、RSASSA-PSSの署名アルゴリズムのRSA証明書をApache Webサーバーのユーザー証明書として構成できます。その後、Oracle WebLogic Serverでクライアント認証に証明書が必要な場合に、この証明書を使用してクライアント証明書として機能させることができます。

RSASSA-PSS署名付き証明書を使用するようにOracle WebLogic Serverを構成している場合、Oracle WebLogic Server 14.1.1.0.0プロキシ・プラグインは、SSLハンドシェイク中にこのような証明書をサポートします。

境界認証の構成

境界認証を使用して、プロキシ・プラグインを使用してアクセスされるOracle WebLogic Serverアプリケーションを保護します。

WebLogic IDアサーション・プロバイダは、Oracle WebLogic Serverアプリケーションにアクセスする外部システムからのトークンを認証します。これには、プロキシ・プラグインを介してOracle WebLogic Serverアプリケーションにアクセスするユーザーも含まれます。次のようにして、プロキシ・プラグインを安全に保護するIDアサーション・プロバイダを作成します:

  1. Oracle WebLogic ServerアプリケーションでカスタムIDアサーション・プロバイダを作成します。『Oracle WebLogic Serverセキュリティ・プロバイダの開発』カスタムIDアサーション・プロバイダの開発方法に関する項を参照してください。
  2. Certトークン・タイプをサポートするようにカスタムIDアサーション・プロバイダを構成し、Certをアクティブなトークン・タイプにします。『Oracle WebLogic Serverセキュリティ・プロバイダの開発』新しいトークン・タイプの作成方法に関する項を参照してください。
  3. Webアプリケーションのweb.xmlデプロイメント記述子ファイルにおいて、clientCertProxyをTrueに設定(または、クラスタを使用する場合は、必要に応じて管理コンソールの「クラスタ」「構成」「一般」タブでクラスタ全体に対して「クライアント証明書プロキシの有効化」属性をtrueに設定)します。

    ロード・バランサ、SSLアクセラレータなど、サード・パーティのプロキシ・サーバーでclientCertProxy属性を使用することで、双方向SSL認証を有効にできます。clientCertProxy属性の詳細は、『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』context-paramに関する項を参照してください。

  4. clientCertProxyを設定したら、必ず接続フィルタを使用して、プロキシ・プラグインが実行されているマシンからの接続のみをOracle WebLogic Serverが受け入れるようにしてください。『WebLogicセキュリティ・サービスによるアプリケーションの開発』ネットワーク接続フィルタの使用に関する項を参照してください。
  5. Oracle WebLogic Serverプロキシ・プラグインでは、プロキシ・プラグインとOracle WebLogic Serverの間でSSLを使用するには、信頼できる認証局ファイルが必要です。SSLを構成するために必要なステップは、「プロキシ・プラグインでのSSLの使用」を参照してください。

『Oracle WebLogic Serverセキュリティ・プロバイダの開発』IDアサーション・プロバイダに関する項を参照してください。