プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Traffic Directorの管理
12c (12.2.1.2.0)
E82687-03
目次へ移動
目次

前
前へ
次
次へ

12 セキュリティの管理

この章では、Oracle Traffic Director管理サーバーへのアクセスの保護、およびOracle Traffic Director仮想サーバーに対するSSL/TLSの有効化の方法について説明します。また、クライアント認証の構成方法、およびOracle Traffic Directorを使用したオリジン・サーバーへのアクセスの保護の方法についても説明します。

この章の構成は、次のとおりです。

SSL/TLSの概念

この項では、セキュリティ関連の概念についての基本情報を説明します。次の項目が含まれます。

SSLについて

Secure Socket Layer (SSL)は、インターネットの通信およびトランザクションを保護するプロトコルです。デジタル証明書を使用することで、サーバーとクライアント間のセキュアで機密性の高い通信が可能になります。Oracle Traffic Directorは、SSL v3およびトランスポート層セキュリティ(TLS) v1をサポートしています。

双方向HTTP over SSL (HTTPS)接続では、ブラウザ、Webサーバーなどのそれぞれの装置がまず、相手のアイデンティティを確認します。このフェーズをSSL/TLSハンドシェイクと呼びます。アイデンティティが確認された後、接続が確立され、データが暗号化された形式で交換されます。SSLが有効なブラウザとSSLが有効なサーバー間におけるSSL/TLSハンドシェイクの手順を次に示します。

  1. ブラウザは、http://ではなくhttps://で始まるURLを送信し、サーバーへの接続を試みます。

  2. サーバーがそのデジタル証明書(証明書についてを参照)および公開鍵をクライアントに送信します。

  3. クライアントは、サーバーの証明書が現行のものであるかどうか(つまり、失効していないか)、およびクライアントが信頼している認証局(CA)によって発行されたものかどうかをチェックします。

  4. 証明書が有効な場合、クライアントは、1回限りの一意のセッション鍵を生成し、サーバーの公開鍵で暗号化して、その暗号化した鍵をサーバーに送信します。

  5. サーバーは、秘密鍵を使用してクライアントからのメッセージを復号化し、セッション鍵を取得します。

この時点で、クライアントは、サーバー・アイデンティティを確認済となり、クライアントとサーバーのみが、クライアントが生成した一意のセッション鍵のコピーを持ちます。セッションが終了するまで、クライアントとサーバーはこの鍵を使用して、互いの間のすべての通信を暗号化します。

暗号について

暗号は、データの暗号化および復号化に使用されるアルゴリズムであり、数学関数です。暗号によって、強度や堅牢性は異なります。通常、暗号で使用されるビット数が多いほど、その暗号を使用して暗号化されたデータの復号化を難しくなります。

SSL v3およびTLS v1は、様々な暗号をサポートしています。サポートされているプロトコル、暗号化強度についての組織のポリシー、および暗号化されたソフトウェアに対する政府による輸出規制などの要因に応じて、クライアントおよびサーバーでサポートできる暗号スイートは異なります。

双方向の暗号プロセスでは、クライアントとサーバーは、同じ暗号スイートを使用する必要があります。SSL/TLSハンドシェイク・プロセス中、サーバーとクライアントは、通信に使用する暗号スイート(通常、最も強い暗号スイート)についてネゴシエートします。

Oracle Traffic Directorでサポートされている暗号スイート

SSL/TLSハンドシェイク中、Oracle Traffic Directorとクライアント間でどの暗号スイートを使用するかのネゴシエーションが行われます。Oracle Traffic Directorでサポートされる暗号スイートがリストされます。このリストは、otd_getVirtualServerSslProperties WLSTコマンドを実行して表示できます。

各暗号スイートの名前は、表に示されているように、鍵交換アルゴリズム、ハッシュ・アルゴリズム、暗号化アルゴリズムを表しています。

  • サポートされるプロトコル

    • TLS: TLS 1.0、1.1、1.2

    • SSL: SSL 3

  • サポートされる鍵交換アルゴリズム

    • RSA

    • RSA_EXPORT

    • RSA_EXPORT1024

    • RSA_FIPS

    • ECDHE_RSA

    • ECDH_RSA

    • ECDH_ECDSA

    • ECDHE_ECDSA

  • サポートされる暗号化アルゴリズム

    • AES_256_CBC: 256ビット鍵

    • 3DES_EDE_CBC: 168ビット鍵

    • AES_128_CBC: 128ビット鍵

    • RC4_128: 128ビット鍵

    • DES_CBC: 56ビット鍵

    • RC4_56: 56ビット鍵

    • RC4_40およびRC2_CBC_40: 128ビット鍵。ただし、暗号化で意味を持つのは40ビットのみ

    • NULL: 暗号化なし

  • サポートされるメッセージ認証コード(MAC)アルゴリズム

    • SHA: 160ビット・ハッシュ

    • NULL: ハッシュなし

表12-1 Oracle Traffic Directorでサポートされる暗号スイート

暗号スイート

SSL_RSA_WITH_RC4_128_SHA

SSL_RSA_WITH_3DES_EDE_CBC_SHA

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

TLS_ECDHE_RSA_WITH_RC4_128_SHA

TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA

TLS_ECDHE_ECDSA_WITH_RC4_128_SHA

TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA

TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA

TLS_RSA_WITH_AES_128_CBC_SHA

TLS_RSA_WITH_AES_256_CBC_SHA

TLS_RSA_WITH_AES_128_CBC_SHA256

TLS_RSA_WITH_AES_256_CBC_SHA256

TLS_RSA_WITH_AES_128_GCM_SHA256

TLS_RSA_WITH_AES_256_GCM_SHA384

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256

TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

鍵について

暗号を使用した暗号化、それ自体では、データのセキュリティは確保されません。実際に暗号化された結果を作成する、または暗号化済の情報を復号化するには、暗号化する暗号とともに鍵を使用する必要があります。暗号化プロセスでは、公開鍵と秘密鍵の2つの鍵が使用されます。それぞれの鍵は数学的に関連しています。したがって、公開鍵を使用して暗号化された情報は、関連付けられた秘密鍵でのみ復号化でき、その逆も同様です。公開鍵は、証明書の一部として所有者によって公開されます(「証明書について」を参照)。関連付けられている秘密鍵のみが保護されます。

証明書について

証明書は、インターネット上の個人、会社またはその他のエンティティを一意に識別するデータの集合です。証明書を使用することで、2つのエンティティ間のセキュアで機密性の高い通信が可能になります。個人の証明書は、個人が使用するもので、サーバーの証明書は、サーバーとクライアント間でSSLを利用したセキュアなセッションを確立するために使用されます。

証明書は、(サーバーによって)自己署名されるか、認証局(CA)と呼ばれる信頼できるサードパーティによって署名されたものであるか、自分で生成したもののいずれかです。証明書の保有者は、アイデンティティの証明として証明書を提示し、暗号化された機密性の高い通信を確立できます。CAは、サードパーティ・ベンダー、または組織のサーバーに対して証明書を発行する社内の担当部門である場合があります。

証明書は、公開鍵による暗号化に基づいており、この暗号化では、(非常に長い番号)のペアが使用され、目的の受信者のみが読み取れるように情報を暗号化します。受信者は、鍵の1つを使用して情報を復号化します。

証明書によって、所有者の公開鍵と所有者のアイデンティティがバインドされます。公開鍵に加えて、証明書には、通常次の情報が含まれます。

  • 保有者の名前およびその他の識別情報(証明書を使用するサーバーのURLなど)

  • 証明書を発行したCAの名前

  • 発行したCAのデジタル署名

  • 証明書の有効期間

RSAおよびECC証明書

Oracle Traffic Directorは、従来のRSAタイプの鍵、およびより高度な楕円曲線暗号(ECC)鍵の生成をサポートしています。ECCは、演算処理の高速化、電力消費の低減およびメモリーと帯域幅の節約を図れる、小さいサイズの鍵と同等のセキュリティを提供します。

RSAおよびECCの鍵サイズ

  • RSA鍵: 512、1024、2048、4096ビットを指定できます。鍵の桁が多いほど、暗号化の強度は向上しますが、Oracle Traffic Directorは生成するのにより長い時間を必要とします。

  • ECC鍵: 鍵のペアを生成するための曲線を指定する必要があります。Oracle Traffic Directorでは、次の曲線がサポートされています: 163(sect163r2)、192(secp192r1)、224(secp224r1)、233(sect233k1)、256(secp256r1)、283(sect283k1)、384(secp384r1)、409(sect409k1)、521(secp521r1)、571(sect571k1)。

証明書の管理

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

証明書の取得

Oracle Traffic DirectorインスタンスのSSL/TLSを有効化するには、RSAまたはECC証明書、あるいはその両方をOracle Traffic Directorのリスナーまたは仮想サーバーに関連付ける必要があります。 証明書としては、自己署名証明書、デモ用のCA署名証明書またはVerisignのようなサードパーティ認証局(CA)により発行される証明書が可能です。

デモ用のCA署名証明書

デモ用のCA署名証明書を取得するには、Oracle Traffic Directorから鍵ペアを生成する必要があります。鍵ペアの生成の詳細は、鍵ペアの生成を参照してください。生成される鍵ペアは、デフォルトでデモ用のCAにより署名されます。 証明書をCAにより署名する必要がない場合は、この鍵ペアを使用します。さらに、あなたの署名リクエストをCAが署名処理しているときにSSL/TLSの実装をテストする場合は、この鍵ペアを使用できます。

サード・パーティのCA署名証明書

CAにより署名された証明書を取得するには、Oracle Traffic Directorから鍵ペアを生成します。 鍵ペアの生成を参照してください。その後、生成した鍵ペアに対する証明書署名リクエスト(CSR)を生成し、CAに提出し、署名証明書の取得処理に従います。証明書署名リクエスト(CSR)は、サーバー名、組織名、国などの情報を含むデジタル・ファイル(Base-64でエンコーディングされたPEM形式の暗号化済テキスト・ブロック)です。また、証明書に含められる公開鍵も含まれます。鍵ペアからのCSR生成の詳細は、Fusion Middleware Controlを使用したCSRの生成を参照してください。

作成したCSRに対応するCA署名証明書を取得した後、CA署名証明書のインポートの説明に従い、適切な構成に証明書をインポートする必要があります。

自己署名証明書

自己署名証明書はOracle Traffic Directorから作成できません。orapki、keytoolおよびopensslのようなツールを使用します。 証明書は、ここの説明に従ってOracle Traffic Directorにインポートできます。次のコマンドで、自己署名証明書を作成し、同じものをOracle Traffic Directorにインポートします。

opensslおよびJava keytoolの使用

openssl pkcs12 -export -name myservercert -in cert.pem -inkey key.pem -out keystore.p12
keytool -importkeystore -destkeystore mykeystore.jks -srckeystore keystore.p12 -srcstoretype pkcs12 -alias myservercert
# Importing the certificate using wlst command
svc = getOpssService("KeyStoreService")
svc.importKeyStore(appStripe='OTD', name='origin-server-3', password='abc12345', keypasswords='abc12345', type='OracleWallet', permission=true, filepath='<oracle home>/oracle_common/bin/myservercert')

鍵ペアの生成

証明書を作成するには鍵ペアを生成する必要があります。

Fusion Middleware ControlまたはWLSTのいずれかを使用して、鍵ペアを生成できます。

始める前に

鍵ペアの生成を開始する前に、次のことを決定します。

  • 鍵ペアのニックネーム(鍵ペアの生成のみに必要)。

  • 鍵のタイプ(RSAまたはECC)。

    詳細は、RSAおよびECC証明書を参照してください。

Fusion Middleware Controlを使用した鍵ペアの生成

Fusion Middleware Controlを使用して自己署名証明書を作成するには、次を実行します。

  1. 「Fusion Middleware Controlの表示」の説明に従って、Fusion Middleware Controlにログインします。

  2. ページの左上隅にある「WebLogicドメイン」ボタンをクリックします。

  3. 「管理」→「OTD構成」を選択します。

    使用可能な構成のリストが表示されます。

  4. 自己署名証明書を作成する構成を選択します。

  5. 「共通タスク」ペインの「Traffic Director構成」をクリックします。

  6. 「セキュリティ」→「証明書の管理」を選択します

    画面に新しいページが表示されます。

  7. 「共通タスク」バーにある「鍵ペアの生成」ボタンをクリックします。

    新規の鍵ペアの生成ウィザードが開きます。

    GUID-5D358C21-7F37-4741-A7BE-4B0B0BC664BE-default.gifの説明が続きます
    図GUID-5D358C21-7F37-4741-A7BE-4B0B0BC664BE-default.gifの説明
  8. 「OK」をクリックします。証明書リスト内に新規証明書が表示されます。

  9. 証明書の別名をクリックして証明書の詳細を表示します 鍵ペアは、デモ用のCA署名証明書でラップされ、トラスト・ストアに格納されています。アプリケーションでトラスト・ストアを使用していない場合は、デモ用のCA証明書をカスタム・キーストアにインポートする必要があります。

WLSTを使用した鍵ペアの生成

鍵ペアを生成するには、次の例に示すように、generateKeyPairコマンドを実行します。

svc = getOpssService("KeyStoreService")
svc.generateKeyPair(appStripe='OTD', name='myconfig', password='', alias='mycert', keypassword='',dn='CN=test., OU=Webtier, O=\'Oracle Corporation\', ST=California, C=US', keysize='1024')

更新された構成を有効にするには、activateコマンドを使用して、Oracle Traffic Directorインスタンスに構成をデプロイする必要があります。

詳細は、Oracle Traffic Director WebLogic Scripting Toolコマンド・リファレンスgenerateKeyPairを参照するか、--helpオプションを付けてコマンドを実行してください。

証明書署名リクエスト(CSR)の生成

認証局(CA)によって署名された証明書を取得するには、「証明書署名リクエスト(CSR)」をCAに送信し、必要に応じて規定の料金を支払ったら、CAによってリクエストが承認され証明書が付与されるのを待ちます。

CSRは、サーバー名、組織名、国などの情報を含むデジタル・ファイル(Base-64でエンコーディングされたPEM形式の暗号化済テキスト・ブロック)です。また、証明書に含められる公開鍵も含まれます。

Fusion Middleware ControlまたはOTDのWLSTのいずれかを使用して、証明書署名(CSR)を生成できます。

Fusion Middleware Controlを使用したCSRの生成

Fusion Middleware Controlを使用したCSRの生成

  1. 「Fusion Middleware Controlの表示」の説明に従って、Fusion Middleware Controlにログインします。
  2. ページの左上にある「WebLogicドメイン」ボタンをクリックします。
  3. 「管理」→「OTD構成」. を選択します

    使用可能な構成のリストが表示されます。

  4. CSRを作成する構成を選択します。
  5. 「共通タスク」ペインの「Traffic Director構成」をクリックします。
  6. 「セキュリティ」→「証明書の管理」を選択します

    画面に新しいページが表示されます。

  7. 使用可能な証明書のリストが表示されます。CSRを生成する証明書を選択します。
  8. 「共通タスク」ペインにある「CSRの生成」ボタンをクリックします。

    「CSRの生成」をエクスポートできる新規ウィンドウが表示されます。

  9. 「CSRのエクスポート」画面上のプロンプトに従い、「CSRのエクスポート」をクリックしてそのコピーを保存し、「閉じる」をクリックします

WLSTを使用したCSRの生成

CSRを生成するには、次の例に示すように、exportKeyStoreCertificateRequestコマンドを実行します。

# generate the CSR and put it in to a text file
svc.exportKeyStoreCertificateRequest(appStripe='OTD', name='myconfig', password='', alias='mycert', keypassword='', filepath='/scratch/certreq.crt')

このコマンドによりCSRが生成され、Fusion Middleware Controlを使用した鍵ペアの生成に示すようなCSRの暗号化されたテキストが表示されます。

更新された構成を有効にするには、activateコマンドを使用して、Oracle Traffic Directorインスタンスに構成をデプロイする必要があります。

詳細は、Oracle Traffic Director WebLogic Scripting Toolコマンド・リファレンスexportKeyStoreCertificateRequestコマンドを参照するか、--helpオプションを付けてコマンドを実行してください。

作成したCSRに対応するCA署名証明書を取得した後、「証明書のインポート」の説明に従い、適切な構成に証明書をインポートする必要があります。

証明書のインポート

Fusion Middleware ControlまたはWLSTのいずれかを使用して、生成した鍵ペアまたはCA署名証明書をインポートできます。

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

  • Fusion Middleware Controlを使用した証明書のインポート

  • WLSTを使用した証明書のインポート

CA署名証明書のインポート

始める前に

インポートする必要があるCA署名証明書は、Base-64でエンコーディングされたPEM形式のファイルで、サーバー証明書、中間証明書およびルート証明書から始まる証明書チェーンを形成するすべての証明書を含んでいる必要があります。OTDは、Base-64でエンコーディングされたPEM形式のPKCS7ファイル(.p7bファイル)の証明書チェーンのインポートもサポートします。 

PEM形式の証明書チェーン・ファイルのサンプル

-----BEGIN CERTIFICATE-----
(Server SSL certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Intermediate certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Root certificate)
-----END CERTIFICATE-----

pkcs7証明書チェーン・ファイル(.p7bファイル)のサンプル

-----BEGIN PKCS7-----
[... certificate content here ...]
-----END PKCS7-----

Fusion Middleware Controlを使用したCA署名証明書のインポート

  1. Fusion Middleware Controlの表示の説明に従って、Fusion Middleware Controlにログインします
  2. ページの左上にある「WebLogicドメイン」ボタンをクリックします。
  3. 「管理」→「OTD構成」. を選択します

    使用可能な構成のリストが表示されます。

  4. 証明書をインポートする構成を選択します。
  5. 「共通タスク」ペインの「Traffic Director構成」をクリックします。
  6. 「セキュリティ」→「証明書の管理」を選択します
    画面に新しいページが表示されます。
  7. 「インポート」ボタンをクリックします。

    証明書のインポート・ウィザードが開きます。

    図12-1 証明書のインポート

    図12-1の説明が続きます
    「図12-1 証明書のインポート」の説明
  8. 「証明書タイプ」ドロップダウンから「証明書チェーン」を選択します。
  9. ドロップダウンの「別名」から既存の(鍵ペアの生成中に作成された)証明書を選択します。信頼できる証明書をインポートしている場合は、「別名」の名前を指定します。
  10. 証明書ソースを指定します。「貼付け」オプションを使用する場合は、証明書をコピーして直接テキスト・フィールドに貼り付けます。「ファイルを選択してください」オプションを使用している場合は、「参照」をクリックしてオペレーティング・システムからファイルを選択します。
  11. 「OK」をクリックします。インポートされた証明書または信頼できる証明書が、証明書の一覧に表示されます。
WLSTを使用したCA署名証明書のインポート
証明書チェーンをインポートするには、次の例に示すように、importKeyStoreCertificateコマンドを実行します。詳細は、Oracle Platform Security Servicesによるアプリケーションの保護証明書のインポートを参照してください。
svc = getOpssService("KeyStoreService")
svc.importKeyStoreCertificate(appStripe='OTD', name='<configuration name>', password='<key store password>', alias='test_cert', keypassword='<key password>', type='CertificateChain', filepath='/export/home/testCertChain.crt')

既存の証明書のインポート

既存の証明書としては、自己署名証明書または現在のOracle Traffic Directorインストール外で生成された鍵ペアを含む証明書が考えられます。

自己署名証明書はorapki、keytoolおよびopensslのようなツールを使用して生成されます。Fusion Middleware Controlに、これらの証明書をインポートするオプションはありません。秘密鍵が現在のOracle Traffic Directorインストール外に存在するためです。これは、WLSTのimportKeyStoreコマンドを使用して実行できます。自己署名証明書の場合を除いて、KeyStoreには同じ別名のルート証明書と秘密鍵を含めて証明書チェーン全体を含む必要があることに注意してください。Oracle Traffic Directorでは、JKSまたはOracle WalletのタイプのKeyStoresのインポートがサポートされています。

WLSTを使用した既存の証明書のインポート

Import JKS keystore:
svc.importKeyStore(appStripe='OTD', name='origin-server-2', password='<keystore password>', aliases='myservercert', keypasswords='key passwords', type='JKS', permission=true, filepath='<file path to jks keystore>')
Import Oracle Wallet:
svc.importKeyStore(appStripe='OTD', name='origin-server-3', password='<keystore password>', keypasswords='key passwords', type='OracleWallet', permission=true, filepath='<directory containing wallet>')

信頼できる証明書のインポート

Oracle Traffic Directorの仮想サーバーを介してSSL/TLSが有効になっている場合、仮想サーバーのhttps:// URLにアクセスすると、署名しているCAがOracle Traffic Director内の信頼できる証明書に含まれていない場合、署名しているCAが不明であり信頼できないことを示すエラー・メッセージが表示されます。接続を続行するために、クライアントは、証明書を信頼するか、署名しているCAを信頼できる証明書としてインポートするかを選択できます。 インポートする必要がある信頼できる証明書は、Base-64でエンコーディングされたPEM形式のファイルである必要があります。
-----BEGIN CERTIFICATE-----
(Trusted certificate)
-----END CERTIFICATE-----

Fusion Middleware Controlを使用した信頼できる証明書のインポート

  1. 「Fusion Middleware Controlの表示」の説明に従って、Fusion Middleware Controlにログインします。
  2. ページの左上にある「WebLogicドメイン」ボタンをクリックします。
  3. 「管理」→「OTD構成」. を選択します

    使用可能な構成のリストが表示されます。

  4. 証明書をインポートする構成を選択します。
  5. 「共通タスク」ペインの「Traffic Director構成」をクリックします。
  6. 「セキュリティ」→「証明書の管理」を選択します
    画面に新しいページが表示されます。
  7. 「インポート」ボタンをクリックします。

    証明書のインポート・ウィザードが開きます。

    図12-2 証明書のインポート

    図12-2の説明が続きます
    「図12-2 証明書のインポート」の説明
  8. 「証明書タイプ」ドロップダウンから「信頼できる証明書」を選択します。
  9. インポートされた証明書の「別名」名をドロップダウンから指定します。
  10. 証明書ソースを指定します。貼付けオプションを使用する場合は、証明書をコピーして直接テキスト・フィールドに貼り付けます。ファイルの選択オプションを使用する場合は、「参照」をクリックしてオペレーティング・システムからファイルを選択します。
  11. 「OK」をクリックします。インポートされた証明書または信頼できる証明書が、証明書の一覧に表示されます。
WLSTを使用した信頼できる証明書のインポート
信頼できる証明書をインポートするには、次の例に示すように、importKeyStoreCertificateコマンドを実行します。詳細は、Oracle Platform Security Servicesによるアプリケーションの保護を参照してください。
svc = getOpssService("KeyStoreService")
svc.importKeyStoreCertificate(appStripe='OTD', name='<configuration name>', password='<key store password>', alias='test_cert', keypassword='<key password>', type='TrustedCertificate', filepath='/export/home/trustedCertificate.crt')

サブジェクトの代替名での証明書の作成

Oracle Traffic Directorでは、KSS (キーストア・サービス)を使用してキーや証明書を管理し、証明書をOracleウォレットにエクスポートします。KSSではサブジェクトの代替名での証明書の作成はサポートしていないため、ユーザーはKSS外部でこうした証明書を作成してから、KSSにインポートする必要があります。これを実現する1つの方法は、認証局(CA)が、リクエストへの署名時に証明書に代替名拡張機能を追加するオプションを提供しているかどうか確認することです。 CAが証明書署名リクエストの生成時にサブジェクトの代替名を追加するよう要求している場合、orapki (Oracle Traffic Directorにバンドルされています)または無料で入手できるopensslツールを使用してこうしたリクエストを生成できます。

Opensslを使用したSANの作成

CSRの作成

次の例は、opensslツールを使用して、サブジェクトの代替名を持つ証明書のCSR (証明書署名リクエスト)を作成する方法を示しています。

  1. 新しいopenssl構成ファイルを作成します。

    touch openssl-server.cnf
  2. ファイル'openssl-server.cnf'を開いて、次の内容を追加します。必ず、'[ alternate_names ]'セクションに証明書のサブジェクトの代替名を記載してください。

    HOME            = .
    RANDFILE        = $ENV::HOME/.rnd
     
    ####################################################################
    [ req ]
    default_bits        = 2048
    default_keyfile     = serverkey.pem
    distinguished_name  = server_distinguished_name
    req_extensions      = server_req_extensions
    string_mask         = utf8only
     
    ####################################################################
    [ server_distinguished_name ]
    countryName                 = Country Name (2 letter code)
    countryName_default         = US
     
    stateOrProvinceName         = State or Province Name (full name)
    stateOrProvinceName_default = MD
     
    localityName                = Locality Name (eg, city)
    localityName_default        = Baltimore
     
    organizationName            = Organization Name (eg, company)
    organizationName_default    = Test CA, Limited
     
    commonName                  = Common Name (e.g. server FQDN or YOUR name)
    commonName_default          = example.com
     
    emailAddress                = Email Address
    emailAddress_default        = test@example.com
     
    ####################################################################
    [ server_req_extensions ]
     
    subjectKeyIdentifier        = hash
    basicConstraints            = CA:FALSE
    keyUsage                    = keyEncipherment
    extendedKeyUsage            = serverAuth,clientAuth
     
    subjectAltName              = @alternate_names
     
    ####################################################################
    [ alternate_names ] # Replace these with the desired subject alternate names for this certificate
     
    DNS.1       = example.net
    DNS.2       = www.example.com
    DNS.3       = mail.example.com
    DNS.4       = ftp.example.com
  3. サーバー証明書リクエストを作成します。

    openssl req -config openssl-server.cnf -newkey rsa:2048 -sha256 -nodes -out servercert.csr -outform PEM
  4. 次のコマンドを使用して、CSRを検査できます。

    openssl req -text -noout -verify -in servercert.csr

CAによって署名されたCSRの取得

上で生成されたCSRをCAに送信し、要求されたプロセスに従ってCAに署名してもらいます。

CA署名証明書をOracle Traffic Director構成にインポートします。

Fusion Middlewareコンソールには、秘密鍵がKSS外で生成されたCA署名証明書をインポートするオプションはありません。ただし、JKS (Java Key Store)またはOracleウォレットをインポートできるWLST importKeyStoreコマンドを使用してこれを行うことができます。キーストアには、同じ別名のルート証明書と秘密鍵を含め、証明書チェーン全体を含める必要があります。

次のコマンドは、CA署名証明書、秘密鍵およびCA証明書をJKSに追加し、その後WLSTを使用してOTD構成にインポートする方法を示しています。

# Convert the certificates and key into a pkcs12 file
# servercert.pem - Base-64 encoded PEM formatted file containing containing CA signed certificate obtained from the CA.
# serverkey.pem - Private key generated while creating the certificate signing request
# cacert.pem -  Base-64 encoded PEM formatted file containing all the certificates that are needed to form the certificate chain starting from intermediate certificates (if any) and the root certificate
openssl pkcs12 -export -name myservercert -in servercert.pem -inkey serverkey.pem -certfile cacert.pem -out keystore.p12
 
# Convert pksc12 file into jks key store
keytool -importkeystore -destkeystore mykeystore.jks -srckeystore keystore.p12 -srcstoretype pkcs12 -alias myservercert

上で作成されたJKSを、WLSTを使用してOracle Traffic Director構成にインポートできるようになりました。

svc = getOpssService("KeyStoreService")
svc.importKeyStore(appStripe='OTD', name='foo', password='abc123', aliases='myservercert', keypasswords='abc123', type='JKS', permission=true, filepath='mykeystore.jks')

Orapkiを使用したSANの作成

CSRの作成

  1. 空のウォレットを作成します。

    <oracle home>/oracle_common/bin/orapki wallet create -wallet ./foo -pwd abc12345
  2. 証明書署名リクエストをウォレットに追加します。下に示すように、addext_sanパラメータを使用して必ずサブジェクトの代替名を記載してください。

    <oracle home>/oracle_common/bin/orapki wallet add -wallet ./foo -dn 'CN=example.com, O=Test CA Limited, L=Baltimore, ST=MD, C=US, OU='blah' -keysize 2048 -addext_ski -addext_ku  keyEncipherment -addext_basic_cons CA -addext_san DNS:example.net,DNS:www.example.com,DNS:mail.example.com,DNS:ftp.example.com -pwd abc12345
  3. 証明書署名リクエストをエクスポートします。

    <oracle home>/oracle_common/bin/orapki wallet export -wallet ./foo -dn 'CN=example.com, O=Test CA Limited, L=Baltimore, ST=MD, C=US' -request ./foo/creq.txt -pwd abc12345

CAによって署名されたCSRの取得

上でエクスポートされたCSRをCAに送信し、要求されたプロセスに従ってCAに署名してもらいます。

CA署名証明書をOracle Traffic Director構成にインポートします。

  1. CA署名証明書をウォレットに追加します。

    <oracle home>/oracle_common/bin/orapki wallet add -wallet ./foo -user_cert -cert ./foo/cert.txt -pwd abc12345
  2. ルート証明書および中間証明書を信頼できる証明書としてウォレットに追加します。

    <oracle home>/oracle_common/bin/orapki wallet add -wallet ./foo -trusted_cert -cert ./foo/root.txt -pwd abc12345
  3. 次のコマンドを使用して、ウォレットの内容を確認します。

    <oracle home>/oracle_common/bin/orapki wallet display -wallet ./foo -pwd abc12345 -complete

Fusion Middlewareコンソールには、秘密鍵がKSS外で生成されたCA署名証明書をインポートするオプションはありません。ただし、JKS (Javaキー・ストア)またはOracleウォレットをインポートできるimportKeyStoreコマンドを使用してこれを行うことができます。キーストアには、ルート証明書と秘密鍵を含め、証明書チェーン全体を含める必要があります。

svc = getOpssService('KeyStoreService')
# filepath must be absolute path of the directory containing oracle wallet
svc.importKeyStore(appStripe='OTD', name='foo', password='abc12345', keypasswords='', type='OracleWallet', permission=true, filepath='/scratch/foo')

証明書リストの表示

Fusion Middleware ControlまたはWLSTのいずれかを使用して、構成にインストールされている証明書のリストを表示できます

Fusion Middleware Controlを使用した証明書のリストの表示

管理コンソールを使用して構成にインストールされている証明書のリストを表示するには、次の操作を行います。

  1. 「Fusion Middleware Controlの表示」の説明に従って、Fusion Middleware Controlにログインします

  2. ページの左上隅にある「WebLogicドメイン」ボタンをクリックします。

  3. 「管理」→「OTD構成」を選択します。

    使用可能な構成のリストが表示されます。

  4. 証明書を表示する構成を選択します。

  5. 「共通タスク」ペインの「Traffic Director構成」をクリックします。

  6. 「セキュリティ」→「証明書の管理」を選択します

    画面に新しいページが表示されます。

  7. 「共通タスク」バーの下に証明書がリストされます。

WLSTを使用した証明書のリストの表示

  • 構成にインストールされている証明書のリストを表示するには、次の例に示すように、otd_listCertificatesコマンドを実行します。

    次のコマンドでは、構成のサーバー証明書のリストが表示されます。

    props = {}
    props['configuration'] = 'foo'
    otd_listCertificates(props)
    
  • 証明書のプロパティを表示するには、次の例に示すように、getKeyStoreCertificatesコマンドを実行します。

    svc = getOpssService("KeyStoreService")
    svc.getKeyStoreCertificates(appStripe='OTD', name='myconfig', password='', alias='mycert')
    

証明書の削除

Fusion Middleware ControlまたはWLSTのいずれかを使用して、構成内の証明書を削除できます。

注意:

証明書olddemocaおよびdemocasystemストライプ内のtrustキーストアに属しており、すべてのOracle Traffic Director構成で共有され、削除した場合はすべての構成から削除されます。

Fusion Middleware Controlを使用して証明書を削除します

Fusion Middleware Controlを使用して証明書を削除します

  1. 「Fusion Middleware Controlの表示」の説明に従って、Fusion Middleware Controlにログインします。
  2. ページの左上にある「WebLogicドメイン」ボタンをクリックします。
  3. 「管理」→「OTD構成」. を選択します

    使用可能な構成のリストが表示されます。

  4. 証明書を削除する構成を選択します。
  5. 「共通タスク」ペインの「Traffic Director構成」をクリックします。
  6. 「セキュリティ」→「証明書の管理」を選択します

    画面に新しいページが表示されます。

  7. 「共通タスク」バーの下に証明書のリストが表示されます。
  8. 削除する証明書の「削除」ボタンをクリックします。
    • 1つ以上のリスナーが削除中の証明書と関連付けられている場合、その証明書を削除できないことを示すメッセージが表示されます。

    • 削除中の証明書が、いずれのリスナーにも関連付けられていない場合、証明書の削除を確認するプロンプトが表示されます。

      「OK」をクリックして進みます。

    「コンソール・メッセージ」ペインに、証明書が削除されたことを確認するメッセージが表示されます。

WLSTを使用して証明書を削除します

WLSTを使用して証明書を削除します

証明書を削除するには、deleteKeyStoreEntryコマンドを実行します。

:

svc = getOpssService("KeyStoreService")
svc.deleteKeyStoreEntry(appStripe='OTD', name='myconfig', password='', alias='mycert', keypassword='')

削除しようとしている証明書が1つ以上のリスナーに関連付けられている場合、次のメッセージが表示されます。

OTD-64309 Certificate 'rsa-1' is being referred by listeners: listener1,listenerN

--forceオプションを指定することで、証明書を強制的に削除できます。

更新された構成を有効にするには、activateコマンドを使用して、Oracle Traffic Directorインスタンスに構成をデプロイする必要があります。

詳細は、Oracle Traffic Director WebLogic Scripting Toolコマンド・リファレンスdeleteKeyStoreEntryを参照するか、--helpオプションを付けてコマンドを実行してください。

Oracle Traffic DirectorのSSL/TLSの構成

Oracle Traffic Directorとクライアント間のSSL/TLSの構成

この項では、SSL/TLSを使用して、クライアントとOracle Traffic Directorインスタンス間の通信を保護する方法について説明します。

OTDインスタンスのSSL/TLSを有効化するには、RSAまたはECC証明書、あるいはその両方をインスタンスの1つ以上のリスナーに関連付ける必要があります。

HTTPSリクエストの受信時、Oracle Traffic DirectorがSSL/TLSハンドシェイク中に送信する証明書は、次のいずれかになります。

  • 構成したHTTPリスナーにバインドされている仮想サーバーに関連付けられている証明書。
  • HTTP/TCPリスナーに関連付けられている証明書

HTTP/TCPリスナーのSSLの構成

Fusion Middleware ControlまたはWLSTのいずれかを使用して、HTTPSまたはTCPリクエストを受信するリスナーを構成できます。

Fusion Middleware Controlを使用したリスナー用のSSL/TLSの構成

  1. 「Fusion Middleware Controlの表示」の説明に従って、Fusion Middleware Controlにログインします。
  2. ページの左上にある「WebLogicドメイン」ボタンをクリックします。
  3. 「管理」→「OTD構成」. を選択します

    使用可能な構成のリストが表示されます。

  4. SSL/TLSが有効化されたリスナーを構成する構成を選択します。
  5. 「共通タスク」ペインの「Traffic Director構成」をクリックします。
  6. 「管理」→「リスナー」を選択します。
  7. HTTPリスナー/TCPリスナー間でSSL/TLSを有効化して構成するリスナーを選択します。

    「リスナー設定」ページが表示されます。

  8. 「設定」→「SSL/TLS設定」を選択します。

    「SSL/TLS設定」ページが表示されます。

  9. 「SSL設定」セクションで、「SSL有効」チェック・ボックスを選択します。
  10. 「RSA証明書」および「ECC証明書」フィールドで、サーバーの認証に使用する証明書を選択します。

    リスナーをRSA証明書およびECC証明書に関連付ける場合、サーバーがクライアントに最終的に提示する証明書は、クライアントとサーバーがネゴシエートして使用する暗号スイートに基づき、SSL/TLSハンドシェイク中に決定されます。

    また、「リスナー設定」ページの「詳細設定」セクションで次の詳細なSSL/TLS設定も指定できます。

    クライアント認証の構成: クライアント認証とは、クライアントによって提供される証明書に基づいて行われる、HTTP/TCPリスナーによるクライアントの検証です。 クライアント認証は、デフォルトでは有効化されません。 クライアント認証を構成するには、次を実行します。

    1. 「設定」→「詳細設定」→「SSL/TLS設定」を選択します。
      SSL/TLS設定ページが表示されます。
    2. 必要な「SSL/TLSクライアント認証」モードを選択します。
      • 必須: サーバーがクライアントに証明書を要求し、クライアントが証明書を提供しない場合、接続はクローズされます。

      • オプション: サーバーはクライアントに証明書を要求しますが、必須ではありません。クライアントが証明書を提供しなくても、接続は確立されます。

      • 無効 (デフォルト): クライアント認証は無効化されます。

    3. 「認証タイムアウト」および「最大認証データ」パラメータを指定します。
    暗号の構成: SSLおよびTLS暗号を構成するには、次を実行します。
    1. 「設定」→「詳細設定」→「SSL/TLS設定」を選択します。
      SSL/TLS設定ページが表示されます
    2. 「SSL設定」セクションで、リスナーに使用できる暗号から「暗号」を選択します。

      注意:

      リスナーに対してSSL/TLSが有効にされている場合は、暗号のみを選択できます。
  11. 画面上のヘルプおよびプロンプトがすべてのパラメータに提供されています。フィールドの値を変更する、または変更したテキスト・フィールドからタブアウトすると、ページの右上隅にある「適用」ボタンが有効になります。「元に戻す」ボタンをクリックすることで、いつでも変更を破棄できます。
  12. 必要な変更を行った後、「適用」をクリックします。

    更新されたリスナーが保存されたことを確認するメッセージが、「コンソール・メッセージ」ペインに表示されます。

  13. 「共通のタスク」ペインの「インスタンスの起動/再起動」をクリックして、構成のインスタンスを再起動します。
WLSTを使用したリスナーのSSL/TLSの構成
  • HTTPまたはTCPリスナーのSSL/TLSのプロパティを表示するには、次の例に示すように、otd_getHttpListenerSslPropertiesまたはotd_getTcpListernerSslPropertiesコマンドを実行します。
    props = {}
    props['configuration'] = 'foo'
    props['http-listener'] = 'http-listener-1'
    otd_getHttpListenerSslProperties(props)
    enabled=false
    client-auth=false
    client-auth-timeout=60
    max-client-auth-data=1048576
    ssl3=true
    tls10=true
    tls11=true
    tls12=true
    override-cipher-order=false
    ...
  • HTTPまたはTCPリスナー用のSSL/TLSを構成するには、次の例に示すように、otd_setHttpListenerSslPropertiesまたはotd_setTcpListenerSslPropertiesコマンドを実行します。
    props['configuration'] = 'foo'
    props['http-listener'] = 'http-listener-1'
    props['tls10'] = 'false'
    otd_setHttpListenerSslProperties(props)
  • クライアント認証の構成: クライアント認証とは、クライアントによって提供される証明書に基づいて行われる、HTTP/TCPリスナーによるクライアントの検証です。 クライアント認証は、デフォルトでは有効化されません。 リスナーに対してクライアント認証を構成するには、otd_setHttpListenerSslProperties/ otd_setTcpListenerSslPropertiesコマンドを実行します。
    props = {}
    props['configuration'] = 'foo'
    props['http-listener'] = 'bar'
    props['client-auth'] = 'false'
    otd_setHttpListenerSslProperties(props)
  • 暗号の構成: リスナーに対して現在有効になっている暗号を表示するには、otd_getHttpListenerSslProperties/otd_getTcpListenerSslPropertiesコマンドを、次の例に示すように実行します。
    props = {}
    props['configuration'] = 'foo'
    props['http-listener'] = 'bar'
    otd_getTcpListenerSslProperties(props)
    現在有効になっている暗号のカンマ区切りのリストがcipherプロパティに返されます。
  • リスナーに対して特定の暗号を有効または無効にするには、otd_setHttpListenerSslProperties/otd_setTcpListenerSslPropertiesコマンドを実行し、有効にする暗号をciphersプロパティに指定します。
  • サポートされている暗号のリストは、otd_getHttpListenerSslProperties/otd_getTcpListenerSslPropertiesコマンドを実行するときに、別のプロパティ"supported-ciphers"で表示されます。

仮想サーバーでのSSLの構成

Fusion Middleware Controlを使用した仮想サーバーでのSSLの構成

  1. 「Fusion Middleware Controlの表示」の説明に従って、Fusion Middleware Controlにログインします。
  2. ページの左上にある「WebLogicドメイン」ボタンをクリックします。
  3. 「管理」→「OTD構成」. を選択します

    使用可能な構成のリストが表示されます。

  4. SSL/TLSが有効化されたリスナーを構成する構成を選択します。
  5. 「共通タスク」ペインの「Traffic Director構成」をクリックします。
  6. 「管理」→「仮想サーバー」を選択します。

    「仮想サーバー」ページが表示されます。構成に定義された仮想サーバー・リストが表示されます。

    名前をクリックすると、仮想サーバーのプロパティを表示できます。

  7. 有効にし、SSL/TLSを構成するリスナーを選択します。

    「リスナー設定」ページが表示されます。

  8. 「設定」→「SSL/TLS設定」を選択します。

    SSL/TLS設定ページが表示されます。

  9. 「SSL設定」セクションで、「SSL有効」チェック・ボックスを選択します。
  10. 「RSA証明書」および「ECC証明書」フィールドで、サーバーの認証に使用する証明書を選択します。

    リスナーをRSA証明書およびECC証明書に関連付ける場合、サーバーがクライアントに最終的に提示する証明書は、クライアントとサーバーがネゴシエートして使用する暗号スイートに基づき、SSL/TLSハンドシェイク中に決定されます。

    また、「リスナー設定」ページの「詳細設定」セクションで次の詳細なSSL/TLS設定も指定できます。

    クライアント認証の構成: クライアント認証とは、クライアントによって提供される証明書に基づいて行われる、OTD仮想サーバーによるクライアントの検証です。 クライアント認証は、デフォルトでは有効化されません。 クライアント認証を構成するには、次を実行します。

    1. 「設定」→「詳細設定」→「SSL/TLS設定」を選択します。
      SSL/TLS設定ページが表示されます。
    2. 必要な「SSL/TLSクライアント認証」モードを選択します。
      • 必須: サーバーがクライアントに証明書を要求し、クライアントが証明書を提供しない場合、接続はクローズされます。

      • オプション: サーバーはクライアントに証明書を要求しますが、必須ではありません。クライアントが証明書を提供しなくても、接続は確立されます。

      • 無効 (デフォルト): クライアント認証は無効化されます。

    3. 「認証タイムアウト」および「最大認証データ」パラメータを指定します。
    暗号の構成: SSLおよびTLS暗号を構成するには、次を実行します。
    1. 「設定」→「詳細設定」→「SSL/TLS設定」を選択します。
      SSL/TLS設定ページが表示されます
    2. 「SSL設定」セクションで、リスナーに使用できる暗号から「暗号」を選択します。

      注意:

      リスナーに対してSSL/TLSが有効にされている場合は、暗号のみを選択できます。
  11. 画面上のヘルプおよびプロンプトがすべてのパラメータに提供されています。フィールドの値を変更する、または変更したテキスト・フィールドからタブアウトすると、ページの右上隅にある「適用」ボタンが有効になります。「元に戻す」ボタンをクリックすることで、いつでも変更を破棄できます。
  12. 必要な変更を行った後、「適用」をクリックします。

    更新されたリスナーが保存されたことを確認するメッセージが、「コンソール・メッセージ」ペインに表示されます。

  13. 「共通のタスク」ペインの「インスタンスの起動/再起動」をクリックして、構成のインスタンスを再起動します。
WLSTを使用した仮想サーバーでのSSLの構成
  • 仮想サーバーに現在関連付けられている証明書を表示するには、次の例に示すように、otd_getVirtualServerSslPropertiesコマンドを実行します。
    props = {}
    props['configuration'] = 'foo'
    props['virtual-server'] = 'bar'
    otd_getVirtualServerSslProperties(props)

    max-client-auth-data=1048576

    ssl3=false

    client-auth=false

    tls12=true

    tls11=true

    override-cipher-order=false

    tls10=true

    enabled=false

    server-cert-alias=None

    client-auth-timeout=60

    ...
  • 仮想サーバーと証明書を関連付けるには、次の例に示すように、otd_setVirtualServerSslPropertiesコマンドを実行します。
    props = {}
    props['configuration'] = 'foo'
    props['virtual-server'] = 'bar'
    props['server-cert-alias'] = 'cert-1'
    otd_setVirtualServerSslProperties(props)
    仮想サーバーに関連付ける証明書と同じタイプの証明書(ECCまたはRSA)が、仮想サーバーがバインドされているリスナーにも関連付けられていることを確認してください。
  • クライアント認証とは、クライアントによって提供される証明書に基づいて行われる、OTD仮想サーバーによるクライアントの検証です。クライアント認証は、デフォルトでは有効化されません。仮想サーバーに対してクライアント認証を有効にするには、仮想サーバーに対してotd_setVirtualServerSslPropertiesを実行します
    props = {}
    props['configuration'] = 'foo'
    props['virtual-server'] = 'bar'
    props['client-auth'] = 'false'
    otd_setVirtualServerSslProperties(props)
  • 仮想サーバーに対して現在有効になっている暗号を表示するには、次の例に示すように、otd_getVirtualServerSslPropertiesコマンドを実行します。
    props = {}
    props['configuration'] = 'foo'
    props['virtual-server'] = 'bar'
    otd_getVirtualServerSslProperties(props)
    現在有効になっている暗号のカンマ区切りのリストがcipherプロパティに返されます。
  • 仮想サーバーに対して特定の暗号を有効または無効にするには、otd_setVirtualServerSslPropertiesコマンドを実行し、有効にする暗号をciphersプロパティに指定します。
  • サポートされている暗号のリストは、otd_getVirtualServerListenerSslPropertiesコマンドを実行するときに、別のプロパティ"supported-ciphers"で表示されます。

Oracle Traffic Directorとオリジン・サーバー間のSSL/TLSの構成

この項では、SSL/TLSを使用して、Oracle Traffic Directorインスタンスと、Oracle WebLogic ServerおよびOracle HTTP Serverインスタンスであるオリジン・サーバー間の通信をどのように保護するかについて説明します。次の項目が含まれます。

一方向および双方向のSSL/TLSについて

Oracle Traffic Directorと、バック・エンドのオリジン・サーバー間の接続は、一方向または双方向のSSL/TLSを使用して保護できます。

  • 一方向SSL/TLS: SSL/TLSが有効化されたオリジン・サーバーでは、証明書がOracle Traffic Directorインスタンスに提示されます。SSL/TLSハンドシェイク中、Oracle Traffic Directorインスタンスは証明書をオリジン・サーバーに提示するように構成されていません。

  • 双方向SSL/TLS: SSL/TLSが有効化されたオリジン・サーバーでは、証明書がOracle Traffic Directorインスタンスに提示されます。Oracle Traffic Directorインスタンスも自身の証明書をオリジン・サーバーに提示します。オリジン・サーバーは、SSL/TLS接続を確立する前に、Oracle Traffic Directorインスタンスのアイデンティティを確認します。さらに、SSL/TLS接続の両端(Oracle Traffic Directorまたはオリジン・サーバー、あるいはその両方)が、証明書の交換中にホスト名を確認するように構成できます。

一方向SSL/TLSの構成

  1. 信頼できる証明書をインポートします。Oracle Traffic Directorへの信頼できる証明書としての証明書のインポートの詳細は、信頼できる証明書のインポートを参照してください。
  2. コマンドotd_setOriginServerPoolSslPropertiesを必要に応じて使用して、オリジン・サーバーの証明書のホスト名を確認するようにOracle Traffic Directorを構成します。
    構文:
    otd_setOriginServerPoolSslProperties(props)
    例:
    props = {}
    props['configuration'] = 'foo'
    props['origin-server-pool'] = 'bar'
    props['validate-server-cert-hostname'] = 'true'
    otd_setOriginServerPoolSslProperties(props)

    注意:

    SSL/TLSハンドシェイク中にオリジン・サーバーの証明書のホスト名を検証するようにOracle Traffic Directorが構成されているため、失敗を回避するために次を実行する必要があります。オリジン・サーバーがその証明書を提示した際、Oracle Traffic Directorは証明書のホスト名を検証できず、このためSSL/TLSハンドシェイクが失敗します。

双方向SSL/TLSの構成

Oracle Traffic Directorとオリジン・サーバー間の双方向SSL/TLSを構成するには、次の操作を行います。

  1. 「Oracle Traffic Directorとオリジン・サーバー間の一方向SSL/TLSの構成」の説明に従い、一方向SSL/TLSを構成する手順を実行します。
  2. 証明書の取得の説明に従い、CAによって発行されたOracle Traffic Directorのサーバー証明書を取得します。
  3. 「証明書のインポート」の説明に従い、CAによって発行された証明書をOracle Traffic Director構成にインストールします。
  4. otd_enableRouteAuth WLSTを使用して、Oracle Traffic Directorがオリジン・サーバーに提示する必要がある証明書を指定し、必要なOracle Traffic Directorルートを構成します。

    構文:

    otd_setOriginServerPoolSslProperties(props)

    :

    props = {}
    props['configuration'] = 'foo'
    props['origin-server-pool'] = 'bar'
    props['client-cert-alias'] = 'baz'
    otd_setOriginServerPoolSslProperties(props)
    
  5. OTDの証明書に署名したCAのルート証明書をキーストアからエクスポートします。
    構文
    svc = getOpssService("KeyStoreService")
    svc.exportKeyStoreCertificate(appStripe='<stripe>', name='<keystore>', password='<password>', alias='<alias>', type='<entrytype>', filepath='<absolute_file_path>')
    

    svcはgetOpssService()に対する呼出しによって取得されるサービス・コマンド・オブジェクト、appstripeはキーストアを含むストライプの名前、nameはキーストアの名前、passwordはキーストアのパスワード

    aliasはエクスポートするエントリの別名

    typeはエクスポートするキーストア・エントリのタイプ。有効な値は、CertificateTrusted CertificateおよびCertificate Chain

    filepathは証明書、信頼できる証明書または証明書チェーンのエクスポート先のファイルの絶対パス

    例:
    svc = getOpssService("KeyStoreService")
    svc.exportKeyStoreCertificate(appStripe='OTD', name='myconfig', password='', alias='rootca', keypassword='', type='TrustedCertificate', filepath='/scratch/rootcert.txt')

    exportKeyStoreCertificateコマンドの詳細は、次のコマンドを実行してください。

    svc = getOpssService("KeyStoreService")
    svc.help('exportKeyStoreCertificate')
  6. 前の手順でオリジン・サーバーの信頼キーストアにエクスポートしたルート証明書をインポートします。
  7. SSL/TLSハンドシェイク中にOracle Traffic Directorにそのクライアント証明書の提示を要求するように、オリジン・サーバーを構成します。
    • Oracle WebLogic Serverオリジン・サーバーの場合:

      Oracle WebLogic Server Fusion Middleware Controlオンライン・ヘルプ双方向SSLの構成で説明されている手順を実行します。

      注意:

      Oracle WebLogic Serverでは、デフォルトでホスト名の確認が有効化されています。ホスト名検証の無効化の詳細は、Oracle WebLogic Server Fusion Middleware Controlオンライン・ヘルプホスト名検証の無効化を参照してください。

    • Oracle HTTP Serverオリジン・サーバーの場合:

      次のディレクティブをhttpd.confファイルに追加します: SSLVerifyClient require

オリジン・サーバー・プールでの暗号の構成

Fusion Middleware Controlを使用したオリジン・サーバー・プールでの暗号の構成

  1. 「Fusion Middleware Controlの表示」の説明に従って、Fusion Middleware Controlにログインします。
  2. ページの左上にある「WebLogicドメイン」ボタンをクリックします。
  3. 「管理」→「OTD構成」. を選択します

    使用可能な構成のリストが表示されます。

  4. 暗号を構成する構成を選択します。
  5. 「共通タスク」ペインの「Traffic Director構成」をクリックします。
  6. 「管理」→「オリジン・サーバー・プール」を選択します。

    「オリジン・サーバー・プール」ページが表示されます。構成に定義された「オリジン・サーバー・プール」のリストが表示されます。

  7. 暗号を構成する「オリジン・サーバー・プール」を選択します。
    オリジン・サーバー・プール設定ページが表示されます。
  8. 「設定」→「詳細設定」→「SSL/TLS設定」を選択します。
    SSL/TLS設定ページが表示されます。

    「オリジン・サーバー・プール」に対してSSL/TLSが有効にされている場合は、暗号のみを選択できます。

  9. 「SSL設定」セクションで証明書を管理できます。
  10. フィールドの値を変更する、または変更したテキスト・フィールドからタブアウトすると、ページの右上隅にある「OK」ボタンが有効になります。

    「取消」ボタンをクリックすることで、いつでも変更を破棄できます。

  11. 必要な変更を行った後、「OK」をクリックします。

    更新されたリスナーが保存されたことを確認するメッセージが、「コンソール・メッセージ」ペインに表示されます。

WLSTを使用したオリジン・サーバー・プールでの暗号の構成
  • 「オリジン・サーバー・プール」に対して現在有効になっている暗号を表示するには、次の例に示すように、otd_getOriginServerPoolSslPropertiesコマンドを実行します。
    props = {}
    props['configuration'] = 'foo'
    props['origin-server-pool'] = 'bar'
    otd_getOriginServerPoolSslProperties(props)
    現在有効になっている暗号のカンマ区切りのリストがcipherプロパティに返されます。
  • 仮想サーバーに対して特定の暗号を有効または無効にするには、otd_setOriginServerPoolSslPropertiesコマンドを実行し、有効にする暗号をciphersプロパティに指定します。
  • サポートされている暗号のリストは、otd_getOriginServerPoolSslPropertiesコマンドを実行するときに、別のプロパティsupported-ciphersで表示されます。

Oracle Traffic Directorのフロントエンドとなるハードウェア・ロード・バランサでのSSL終端の構成

この項では、このユース・ケースの処理に必要な構成手順のリストを実行します。顧客は、Oracle Traffic Directorのフロント・エンドとなる外部のハードウェア・ロード・バランサでSSLを終了することを希望しています。

(次に示すような)標準的な本番デプロイメント・トポロジでは、顧客は、(外部の)ハードウェア・ロード・バランサ内でSSLを終端し、内部のロード・バランサ(リバース・プロキシ)およびアプリケーション層内ではHTTP通信のみを扱います。

GUID-E84FF9BD-78B8-49BC-ADF8-2C4C8F97D52E-default.jpgの説明が続きます
図GUID-E84FF9BD-78B8-49BC-ADF8-2C4C8F97D52E-default.jpgの説明

このシナリオでは、顧客は、すべてのリクエストのリダイレクトが正しく行われるように、アプリケーション層のみでなく内部のロード・バランサ/リバース・プロキシ・ソリューションでも、いくつかの追加手順を実行する必要があります。この項では、内部のロード・バランサ(OTD)/リバース・プロキシ・ソリューション内で必要となる手順を中心に説明します。

  1. SSL情報を渡すようにOTDを構成します。
    1. 「Fusion Middleware Controlの表示」の説明に従って、Fusion Middleware Controlにログインします。
    2. ページの左上にある「WebLogicドメイン」ボタンをクリックします。
    3. 「管理」→「OTD構成」.を選択します
      使用可能な構成のリストが表示されます。
    4. 暗号を構成する構成を選択します。
    5. 「共通タスク」ペインの「Traffic Director構成」をクリックします。
    6. 「管理」→「仮想サーバー」を選択します。
      仮想サーバー・ページは、構成用に定義された仮想サーバーのリストを含んで表示されます。
    7. 暗号を構成する「仮想サーバー」を選択します。
      仮想サーバー設定ページが表示されます。
    8. 「ルート」タブをクリックして、変更の必要なルートを選択します。
    9. 「拡張設定」を選択して、次を実行します。
      • ルートを更新します。

      • 'Rewrite-headers'を空に変更して、OTDによる'Location'または'Content-Location'ヘッダーの書換えを無効にします。これは、外部のロード・バランサでSSL終端がオンの場合に重要です。

      • オリジン・サーバーに送信されたSSL関連のすべてのヘッダーのチェックを解除します。

    10. 必要な変更を行った後、「OK」をクリックします。

      更新されたリスナーが保存されたことを確認するメッセージが、「コンソール・メッセージ」ペインに表示されます。

      前述の手順の最後で、OTDによりヘッダーが書き換えられることはなくなり(通常これは、アプリケーション層が別の場所にリクエストをリダイレクトするときに発生します)、オリジン・サーバーへの受信リクエスト内の受信リクエスト・ヘッダーを介して、外部のハードウェア・ロード・バランサが提供するSSL情報の引渡しが可能になります。
  2. F5-BigIPを構成して、ヘッダーを介してOTDにSSL情報を送信します。

    F5-BigIpなどのハードウェア・ロード・バランサ内でのSSLの終端を選択する場合は、OTDおよびWLSに対して明示的に特定のヘッダー「WL-Proxy-SSL」を送信するように、このハードウェア・ロード・バランサを構成する必要があります。

    この手順では、このヘッダーを送信するようにF5-BigIpを構成する方法を説明します(情報源: F5 Big IP製品のドキュメント)。

    1. 「Main」タブで「Local Traffic」を展開して、「Profiles」をクリックします。「HTTP Profiles」画面が開きます。
    2. 画面の右上部で、「Create」ボタンをクリックします。「New HTTP Profile」画面が開きます。
    3. 「Name」ボックスに、このプロファイルの名前を入力します。この例では、bea-sslと入力します。
    4. WebAcceleratorを使用している場合は、「Parent Profile」リストから「http-acceleration」を選択します。WebAcceleratorを使用していない場合は、「http-wan-optimized-compression-caching」を選択します。
    5. 「Request Header Insert」行で、「Custom」ボックスを選択します。このボックスに、WL-Proxy-SSL:trueと入力します。
    6. 「Redirect Rewrite」行で、「Custom」ボックスを選択します。「Redirect Rewrite」リストから「Match」を選択します。
    7. ご自身のネットワークに応じて、その他の設定を変更します。この例では、設定はデフォルトのままにします。
    8. 「終了」をクリックします。

      OTDをOracle Access Manager (OAM/IDM)のフロントエンドとしても使用する場合は、受信リクエストのヘッダーに'IS_SSL:ssl'ヘッダーを追加して挿入するようにハードウェア・ロード・バランサを構成する必要があります。

Web層/Traffic DirectorからSSL情報を受信するためのWebLogicの構成

Oracle Traffic Directorで接続が終了している場合、WebLogic Server Fusion Middleware Controlの属性'WebLogic Plug-In Enabled'を'true'に設定できます。このようにして、Oracle Traffic DirectorはWebLogic Serverにデプロイされたアプリケーションに証明書情報を通信します。アプリケーションは、鍵サイズや暗号など証明書内の特定の情報を検証してから、クライアントにアプリケーションへのアクセスを許可します。このフラグは、特定のWebLogic管理対象サーバー内またはWebLogicクラスタ・レベルのいずれかでオンにできます。これにより、Traffic Director/Web層内でSSLが終端されている場合に、WebLogicで適切にヘッダーを書き込むことができます。

  1. http://<wls-admin-hostname>:7001/consoleを開き、WebLogicのユーザー/パスワードでログインします。

  2. WLS Managed Server内で、「構成」→「一般」の設定タブ内で、「詳細設定」を展開してスクロール・ダウンし、「WebLogicプラグインの有効化」で「はい」を選択し、「保存」をクリックします。

  3. Weblogicクラスタを有効にしている場合は、クラスタ・レベルでこれを実行することをお薦めします。

Oracle Traffic DirectorのSSLパススルーの構成

Oracle Traffic Directorは、TCPプロキシおよびTCPリスナーを使用したTCPのロード・バランシング用に構成された場合、HTTPSを含む任意のTCPベース・プロトコルのSSLパススルーに使用できます。 この場合、リクエストは汎用のTCP接続として処理され、SSLはHTTPS/LDAPS/FTPS/T3Sなどのオリジン・サーバーで終端されます。

証明書失効リストの管理

証明書失効リスト(CRL)は、CAが証明書の期限が切れる前に失効させることを決定した証明書についてCAがユーザーに通知するために発行するリストです。CRLは定期的に更新され、更新されたCRLはCAのWebサイトからダウンロードできます。

Oracle Traffic Directorサーバーが、CAが失効させた証明書を信頼しないようにするために、最新のCRLをCAから定期的にダウンロードし、Oracle Traffic Director構成にインストールしておく必要があります。

CRLは手動でインストールできます。また、ダウンロード済のCRLを指定したディレクトリから指定の間隔で自動的に取得しインストールするようにOracle Traffic Directorを構成できます。

関連項目

CRLの手動によるインストールおよび削除

Fusion Middleware ControlまたはWLSTのいずれかを使用して、CRLを手動でインストールおよび削除できます。

Fusion Middleware Controlを使用したCRLの手動インストール

Fusion Middleware ControlまたはWLSTのいずれかを使用して、CRLを手動でインストールおよび削除できます。

Fusion Middleware Controlを使用してダウンロードされたCRLをインストールするには、次を実行します。

  1. 「Fusion Middleware Controlの表示」の説明に従って、Fusion Middleware Controlにログインします。
  2. ページの左上にある「WebLogicドメイン」ボタンをクリックします。
  3. 「管理」→「OTD構成」. を選択します

    使用可能な構成のリストが表示されます。

  4. 証明書をインストールする構成を選択します。
  5. 「共通タスク」ペインの「Traffic Director構成」をクリックします。
  6. 「セキュリティ」→「証明書失効リスト」を選択します

    画面に新しいページが表示されます。

  7. 「CRLのインストール」ボタンをクリックします。

    「証明書失効リストのインストール」ダイアログ・ボックスが表示されます。

  8. ダウンロードしたCRLファイルの場所を指定し、「CRLのインストール」.をクリックします
    • CRLのインストールが成功したことを確認するメッセージが、「コンソール・メッセージ」ペインに表示されます。

    • インストールしたCRLは、「認証局」ページに表示されます。

WLSTを使用したCRLの手動によるインストールおよび削除

WLSTを使用したCRLの手動によるインストールおよび削除

  • ダウンロードされたCRLをインストールするには、次の例に示すように、otd_installCrlコマンドを実行します。

    props = {}
    props['configuration'] = 'foo'
    props['file-path'] = '/export/ServerSign.crl'
    otd_installCrl(props).
    
  • 構成にインストールされているCRLのリストを表示するには、次の例に示すように、otd_listCrlsコマンドを実行します。

    props = {}
    props['configuration'] = 'foo'
    otd_listCrls(props)
    ---------------------------
    "Class 1 Public Primary Certification Authority" "Sat Apr 15 16:59:59 PDT 2000"
    "VeriSign Class 3 Code Signing 2010 CA" "Mon Aug 29 14:00:03 PDT 2011"
    "VeriSign Class 3 Organizational CA" "Sun May 18 13:48:16 PDT 2014"
    
  • CRLを削除するには、次の例に示すように、otd_deleteCrlコマンドを実行します。

    props = {}
    props['configuration'] = 'foo'
    props['issuer'] = 'CN=GlobalSign ServerSign CA,OU=ServerSign CA,O=GlobalSign nv-sa,C=BE'
    otd_deleteCrl(props)
    

    CRLを削除すると、CRLはOracle Traffic Director構成、およびダウンロードされたCRLが格納されているディレクトリから削除されます。

更新された構成を有効にするには、activateコマンドを使用して、Oracle Traffic Directorインスタンスに構成をデプロイする必要があります。

この項で説明したWLSTコマンドの詳細は、『Oracle Traffic Director WebLogic Scripting Toolコマンドライン・リファレンス』を参照するか、--helpオプションを付けてコマンドを実行してください。

CRLの自動更新

Fusion Middleware ControlまたはWLSTのいずれかを使用して、ダウンロードされたCRLファイルが指定したディレクトリから定期的に取得され、自動的にインストールされるようにOracle Traffic Directorを構成できます。

Oracle Traffic Directorは、指定されたディレクトリ上の更新されたCRLファイルを、指定された間隔で検索します。

  • Oracle Traffic Directorは、新しいCRLファイルを検出した場合、そのファイルを構成にインストールし、サーバー・ログにメッセージを記録します。

  • 既存のCRLファイルが変更された場合、Oracle Traffic Directorは、更新されたCRLファイルを構成にインストールし、サーバー・ログにメッセージを記録します。

  • Oracle Traffic Directorが、前にインストール済のCRLファイルがディレクトリから削除されていることを検出すると、構成からCRLを削除し、サーバー・ログにメッセージを記録します。

  • CRLディレクトリで変更が検出されない場合、Oracle Traffic Directorは更新を実行しません。

Fusion Middleware Controlを使用したOracle Traffic DirectorにおけるCRLの自動インストールの構成

Fusion Middleware Controlを使用してOracle Traffic DirectorにおけるCRLの自動インストールを構成します。

  1. 「グラフィカル・ユーザー・インタフェース - Fusion Middleware Control」の説明に従って、Fusion Middleware Controlにログインします。
  2. 「WebLogicドメイン」をクリックします。
  3. 「管理」→「OTD構成」.を選択します
  4. CRLを自動的にインストールするように設定する構成の名前をクリックします。
  5. 「共通タスク」ペインの「Traffic Director構成」をクリックします。
  6. 「セキュリティ」→「証明書失効リスト」を選択します
  7. 「CRLのインストール」ボタンをクリックします。
  8. ダウンロードしたCRLファイルの場所を指定し、「CRLのインストール」をクリックします。
    • CRLのインストールが成功したことを確認するメッセージが、「コンソール・メッセージ」ペインに表示されます。

    • インストールしたCRLは、「認証局」ページに表示されます。

  9. ページの「詳細設定」セクションに移動します。
  10. 「CRL更新イベント」フィールドに、更新されたCRLファイルを含むディレクトリへの絶対パスを入力します。
  11. 「新規イベント」をクリックします
  12. CRLを更新する間隔または時刻を指定し、「OK」をクリックします。
    • イベントの作成を確認するメッセージが、「コンソール・メッセージ」ペインに表示されます。

    • 新規イベントが「CRL更新イベント」リストに表示されます。

      • 新しいイベントはデフォルトで有効になっています。ステータスを変更するには、「有効化/無効化」チェック・ボックスを選択します。

      • イベントを削除するには、「削除」ボタンをクリックします。

WLSTを使用したOracle Traffic DirectorにおけるCRLの自動インストールの構成

Oracle Traffic DirectorにおけるCRLの自動インストールを構成します。

otd_createEventコマンドを使用して、Oracle Traffic Directorにより、ダウンロードされたCRLが指定されたディレクトリから取得され、自動的にインストールされるようにイベントをスケジュールします。

たとえば、次のコマンドでは、構成fooのCRLは毎日12時に更新されます。

props = {}
props['configuration'] = 'foo'
props['event'] = 'event-1'
props['command'] = 'update CRL'
props['time'] = '12:00'
otd_createEvent(props)

詳細は、Oracle Traffic Director WebLogic Scripting Toolコマンド・リファレンスotd_createEventコマンドを参照するか、--helpオプションを付けてコマンドを実行してください。