証明書認証の設定

ネットワーク・トラフィックの復号化に使用する証明書認証およびボールト・シークレットを設定する方法を学習します。

暗号化ルールを使用するには、暗号化プロファイルで使用するマップされたシークレットを設定する必要があります。マップされたシークレットは、Oracle Cloud Infrastructure Vaultで作成し、インバウンドまたはアウトバウンドSSLキーにマップするシークレットです。シークレットは、SSL転送プロキシまたはSSLインバウンド検証を使用してSSL/TLSトラフィックを復号化および検証するために使用されます。

ポリシーで証明書を使用する方法の詳細は、マップされたシークレットおよび復号化プロファイルを参照してください。
重要

  • SSL転送プロキシまたはSSLインバウンド検証の使用を計画している場合は、ポリシーの作成を開始するOracle Cloud Infrastructure Vaultおよびシークレットを設定します。
  • ポリシーごとに許可されるSSL転送プロキシ・シークレットは1つのみです。
タスク1: ネットワーク・ファイアウォール・サービスによるボールト・シークレットへのアクセスを許可する
ネットワーク・ファイアウォール・サービスがVaultシークレットにアクセスして使用できるようにするIAMポリシーを作成します:
allow service ngfw-sp-prod to read secret-family in compartment <compartment_name> 
警告

この権限が将来の任意の時点で取り消された場合、サービスはマップされたシークレットにアクセスできなくなり、ファイアウォールはトラフィックの復号化を停止します。
タスク2: 証明書を格納するボールトおよびマスター・キーを作成する
  1. ボールト・サービスでボールト、キーおよびシークレットを作成できるIAMポリシーがあることを確認します。次に例を示します:
    Allow group SecurityAdmins to manage vaults in tenancy
    
    Allow group SecurityAdmins to manage keys in tenancy
    
    Allow group SecurityAdmins to manage secret-family in tenancy
    詳細は、ボールト・サービスのIAMの詳細に関する項を参照してください。
  2. 証明書を格納するボールトを作成します
  3. ボールトにマスター暗号化キーを作成します。
    重要

    マスター・キーは対称キーである必要があります。非対称キーではシークレットを暗号化できません。
タスク3: 証明書を格納する

OCIネットワーク・ファイアウォール・サービスでは、自己署名証明書またはCA署名証明書を使用できます。

Oracleには、自己署名証明書の生成に使用できるスクリプトが用意されています。
重要

  • ネットワーク・ファイアウォール・サービスは、指定された証明書を検証し、それをtrustrootに格納します。証明書を正常に検証するには、SSL証明書チェーン全体(中間証明書のルート証明書、秘密鍵を含む)を指定する必要があります。次の.jsonテンプレートにラップされた証明書を.pem形式でアップロードします。
  • "certKeyPair"で指定されたリーフ証明書がフォワード・トラスト証明書である場合、認証局署名機能が必要です。CAフラグを"true"に設定します。

    この例では、"LEAF_CERT_01_PEM_CONTENT"がフォワード・トラスト証明書の場合、CAフラグを"true"に設定する必要があります。
    {
      "caCertOrderedList" : [
        "ROOT_CERT01_PEM_CONTENT",
        "INTERMEDIATE_CERT01_PEM_CONTENT",
        "INTERMEDIATE_CERT02_PEM_CONTENT",
      ],
      "certKeyPair": {
        "cert" : "LEAF_CERT_01_PEM_CONTENT",
        "key":   "PRIVATE_KEY_01_PEM_CONTENT"
      }
    }
自己署名OpenSSL証明書を使用するには、Oracle提供スクリプトを作成します:
  1. OpenSSLをダウンロードしてインストールします。
  2. Perlをダウンロードしてインストールします。
  3. Oracle GitHubリポジトリからスクリプトをダウンロードします。
  4. 次のコマンドを使用してスクリプトを実行します。<test.test.com>を、保護する必要があるWebサーバーのDNS名に置き換えます:
    ./create-certificate inbound <test.test.com>
    または
    ./create-certificate forward <test.test.com>
タスク4: ボールトにシークレットを作成する

使用する証明書ごとに、ボールトにシークレットを作成します。

  1. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」「ボールト」の順にクリックします。
  2. 「リスト範囲」「コンパートメント」リストで、シークレットを作成するコンパートメントの名前をクリックします。
  3. 「タスク2: 証明書を格納するボールトおよびマスター・キーを作成する」で作成したボールトを選択します。

  4. 「シークレット」「シークレットの作成」の順にクリックします。
  5. 「シークレットの作成」ダイアログ・ボックスで、「コンパートメントに作成」リストからコンパートメントを選択します。(シークレットは、ボールトが含まれるコンパートメントの外部に存在できます。)
  6. 「名前」をクリックし、シークレットを識別する名前を入力します。シークレットに含まれる証明書のタイプに対応する名前を使用します。たとえば、"ssl-inbound-inspection-certificate"です。
  7. 「説明」をクリックし、シークレットの識別に役立つ簡単な説明を入力します。
  8. 「タスク2: 証明書を格納するボールトおよびマスター・キーを作成する」で作成したマスター暗号化キーを選択します。
  9. シークレット・コンテンツの形式をプレーン・テキストとして指定します。
  10. 「シークレット・コンテンツ」をクリックし、証明書の内容をフィールドにコピーします。(シークレット・バンドルに許容される最大サイズは25KBです。)
  11. 終了したら、「シークレットの作成」をクリックします。