TLS証明書検証のためのトラスト・ストアのカスタマイズ

API Gatewayを使用して認証局(CA)およびCAバンドルをカスタム・トラスト・ストアに追加する方法をご紹介します。

APIゲートウェイ・サービスで作成したAPIゲートウェイは、トラスト・ストアを使用して提示されたTLS証明書を検証します。トラスト・ストアには、認証局(CA)ルート証明書と、ルート証明書と中間証明書のCAバンドルを含めることができます。デフォルトのCAバンドルが、既知のパブリックCAの証明書を含む各APIゲートウェイのトラスト・ストアに追加されます。デフォルトのCAバンドルにより、APIゲートウェイはバックエンド・サービスによって提示されたTLS証明書を検証できます。

デフォルトのCAバンドルに加えて、他のCAおよび他のCAバンドルのルート証明書をAPIゲートウェイのトラスト・ストアに追加することを選択できます。これらの追加CAおよびCAバンドルは、カスタムCAおよびカスタムCAバンドルと呼ばれます。カスタムCAまたはCAバンドルをAPIゲートウェイのトラスト・ストアに追加するには、まず証明書サービスにCAリソースまたはCAバンドル・リソースを作成する必要があります。証明書サービスにリソースを作成したら、そのリソースをAPIゲートウェイのトラスト・ストアに追加できます。カスタムCAおよびCAバンドルを追加すると、要件を満たすようにトラスト・ストアをカスタマイズできます。

カスタムCAおよびCAバンドルをトラスト・ストアに追加すると、APIゲートウェイへのTLS接続(HTTPSバック・エンドおよびレスポンス・キャッシュからのTLS接続を含む)は、デフォルトのCAバンドルとカスタムCAおよびCAバンドルの両方を使用して検証されます。また、APIデプロイメントに対してmTLSサポートを指定した場合、APIゲートウェイはカスタムCAおよびカスタムCAバンドルを使用してAPIクライアント証明書を検証します。APIゲートウェイは、mTLSハンドシェイク時に、デフォルトのCAバンドルを使用してAPIクライアント証明書を検証しないことに注意してください。そのため、APIゲートウェイでmTLSをサポートする場合は、APIゲートウェイのトラスト・ストアにカスタムCAおよびCAバンドルを追加する必要があります

一部の顧客では、セキュリティ上の理由から、プライベートCAのみを含み、パブリックCAを含まないカスタム・トラスト・ストアを使用する必要があります。また、商業的な要件によってカスタム・トラスト・ストアの使用が必要になる場合もあります。

APIゲートウェイのトラスト・ストアへのカスタムCAおよびCAバンドルの追加

カスタム認証局(CA)またはCAバンドルを追加してAPIゲートウェイのトラスト・ストアをカスタマイズするには、まず認証局(CA)リソースまたはCAバンドル・リソースを証明書サービスで作成してから、APIゲートウェイのトラスト・ストアに追加します。

ステップ1: 証明書サービスでのCAリソースまたはCAバンドル・リソース(あるいはその両方)の作成

証明書サービス・ドキュメントの指示に従って、認証局(CA)リソースまたはCAバンドル・リソース(あるいはその両方)を作成します

ステップ2: APIゲートウェイのトラスト・ストアへのCAリソースまたはCAバンドル・リソースの追加

APIゲートウェイの作成または更新時に認証局(CA)リソースまたはCAバンドル・リソースをAPIゲートウェイのトラスト・ストアに追加するには:

  1. APIゲートウェイの作成またはAPIゲートウェイの更新の説明に従って、コンソールまたはCLIを使用してAPIゲートウェイを作成または更新します。
  2. 次の手順の説明に従って、証明書サービスからCAリソースまたはCAバンドル・リソース(あるいはその両方)を指定して、APIゲートウェイのトラスト・ストアに追加します:

    • コンソールを使用する場合: 「ゲートウェイの作成」または「ゲートウェイの編集」ダイアログの「拡張オプション」セクションで、「認証局の追加」を選択し、APIゲートウェイのトラスト・ストアにカスタムCAおよびカスタムCAバンドルとして(デフォルトのCAバンドルに加えて)追加する1つ以上のCAリソースまたはCAバンドル・リソースを選択します。
    • CLIを使用する場合: --ca-bundles file:///<filename>引数を、1つ以上のCAリソースまたはCAバンドル・リソースの詳細を含むファイルの名前に設定し、APIゲートウェイのトラスト・ストアにカスタムCAおよびカスタムCAバンドルとして(デフォルトのCAバンドルに加えて)追加します。有効なJSONで次の形式で詳細を指定します:
      [
        {
          "type": "CA_BUNDLE",
          "caBundleId": "ocid1.cabundle..."
        },
        {
          "type": "CERTIFICATE_AUTHORITY",
          "certificateAuthorityId": "ocid1.cabundle..."
        }
      ]

    APIゲートウェイ・サービスは、デフォルトのCAバンドルに加えて、指定したカスタムCAまたはCAバンドル(あるいはその両方)を含むトラスト・ストアでAPIゲートウェイを作成または更新します。

APIゲートウェイのトラスト・ストアからのカスタムCAおよびCAバンドルの削除

APIゲートウェイのトラスト・ストアにカスタム認証局(CA)またはCAバンドルを追加すると、CAまたはCAバンドルが不要になる場合があります。

APIゲートウェイにデプロイされているmTLS対応APIがない場合は、APIゲートウェイのトラスト・ストアからカスタムCAおよびCAバンドルの一部またはすべてを削除できます。APIゲートウェイにデプロイされたmTLS対応APIが1つ以上ある場合、APIゲートウェイのトラスト・ストアには常に少なくとも1つのカスタムCAまたはCAバンドルが必要です。

コンソールの使用

コンソールを使用してAPIゲートウェイのトラスト・ストアからカスタムCAまたはCAバンドルを削除するには:

  1. 「ゲートウェイ」リスト・ページで、カスタムCAまたはCAバンドルを削除するAPIゲートウェイを選択します。リスト・ページまたはAPIゲートウェイの検索に関するヘルプが必要な場合は、APIゲートウェイのリストを参照してください。
  2. 「ゲートウェイの詳細」ページで、「リソース」リストから「認証局」を選択し、APIゲートウェイのトラスト・ストアにカスタムCAおよびCAバンドルを表示します。
  3. 削除するカスタムCAまたはCAバンドルの横にある「アクション」メニュー(アクション・メニュー)を選択し、「削除」を選択します。

    APIゲートウェイに1つ以上のmTLS対応APIがデプロイされている場合、APIゲートウェイのトラスト・ストアからすべてのカスタムCAおよびCAバンドルを削除することはできません。

  4. APIゲートウェイのトラスト・ストアからカスタムCAまたはCAバンドルを削除することを確認します。

CLIの使用

CLIを使用してAPIゲートウェイのトラスト・ストアからカスタムCAまたはCAバンドルを削除するには:

  1. CLIを使用するためにクライアント環境を構成します(APIゲートウェイ開発用のCLIを使用するためのクライアント環境の構成)。
  2. APIゲートウェイのトラスト・ストアからカスタムCAまたはCAバンドルを削除するには:

    1. コマンド・プロンプトを開き、oci API-gateway gateway updateを実行して、APIゲートウェイのトラスト・ストアからカスタムCAまたはCAバンドルを削除します:

      oci api-gateway gateway update --gateway-id <gateway-ocid> --ca-bundles file:///<filename>

      <filename>は、APIゲートウェイのトラスト・ストアに保持するカスタムCAおよびカスタムCAバンドルのみの詳細を含むファイルの名前です(デフォルトのCAバンドルに加えて)。ファイルに含まれていないCAまたはCAバンドルは、トラスト・ストアから削除されます。

      例:

      oci api-gateway gateway update --gateway-id ocid1.apigateway.oc1..aaaaaaaab______hga --ca-bundles file:///bundles-to-keep.json

      APIゲートウェイに1つ以上のmTLS対応APIがデプロイされている場合、APIゲートウェイのトラスト・ストアからすべてのカスタムCAおよびCAバンドルを削除することはできません。

      コマンドへのレスポンスには、次が含まれます:

      • ライフサイクルの状態(たとえば、削除済、失敗)。
      • カスタムCAまたはCAバンドルを削除する作業リクエストのID(作業リクエストの詳細は、完了、取消または失敗の後の7日間利用可能です)。

      カスタムCAまたはCAバンドルが削除される(または要求が失敗する)までコマンドが制御を返すのを待機する場合は、次のいずれかまたは両方のパラメータを含めます:

      • --wait-for-state DELETED
      • --wait-for-state FAILED

      例:

      oci api-gateway gateway update --gateway-id ocid1.apigateway.oc1..aaaaaaaab______hga --ca-bundles file:///bundles-to-keep.json --wait-for-state DELETED
    2. (オプション)カスタムCAまたはCAバンドルを削除している作業リクエストのステータスを表示するには、次を入力します:

      oci api-gateway work-request get --work-request-id <work-request-ocid>
    3. (オプション)カスタムCAまたはCAバンドルを削除している作業リクエストのログを表示するには、次を入力します:

      oci api-gateway work-request-log list --work-request-id <work-request-ocid>
    4. (オプション)カスタムCAまたはCAバンドルを削除する作業リクエストが失敗し、エラー・ログを確認する場合は、次を入力します:

      oci api-gateway work-request-error --work-request-id <work-request-ocid>
    5. (オプション)カスタムCAまたはCAバンドルがAPIゲートウェイのトラスト・ストアから削除されたことを確認するには、次のコマンドを入力して、カスタムCAまたはCAバンドルが表示されなくなったことを確認します:

      oci api-gateway gateway get --gateway-id <gateway-ocid>

CLIの使用の詳細は、コマンドライン・インタフェース(CLI)を参照してください。CLIコマンドで使用できるフラグおよびオプションの完全なリストについては、CLIのヘルプを参照してください。

APIの使用

APIの使用およびリクエストの署名の詳細は、REST APIのドキュメントおよびセキュリティ資格証明を参照してください。SDKの詳細は、SDKおよびCLIを参照してください。

UpdateGateway操作を使用して、APIゲートウェイのトラスト・ストアに保持するカスタムCAおよびカスタムCAバンドルのみを指定します(デフォルトのCAバンドルに加えて)。指定しないCAまたはCAバンドルは、トラスト・ストアから削除されます。APIゲートウェイに1つ以上のmTLS対応APIがデプロイされている場合、APIゲートウェイのトラスト・ストアからすべてのカスタムCAおよびCAバンドルを削除することはできません。