TLS 構成のオプション

このドキュメントでは、以下の 2 つの機能領域について Edge で TLS を構成する方法の概要を示します。

  1. API クライアントによる API プロキシへのアクセス。Edge Router 上の仮想ホストを使用して TLS を構成します。
  2. Edge によるバックエンド サービスへのアクセス。Edge Message Processor 上のターゲット エンドポイントとターゲット サーバーを使用して TLS を構成します。

これらの両方のアクセスタイプを以下に示します。

仮想ホストまたはターゲット エンドポイント / ターゲット サーバーでの TLS オプションの設定について

仮想ホストは、XML オブジェクトによって次の形式で表すことができます。

    <VirtualHost name="secure">
        ...
        <SSLInfo>
            <Enabled>true</Enabled>
            <ClientAuthEnabled>true</ClientAuthEnabled>
            <KeyStore>ref://myKeystoreRef</KeyStore>
            <KeyAlias>myKeyAlias</KeyAlias>
            <TrustStore>ref://myTruststoreRef</TrustStore>
            <IgnoreValidationErrors>false</IgnoreValidationErrors>
        </SSLInfo>
    </VirtualHost>
    

TLS を構成するために変更する仮想ホストの領域は、<SSLInfo> タグによって定義されます。同じ <SSLInfo> タグを使用して、ターゲット エンドポイントまたはターゲット サーバーを構成します。

次の表に、<SSLInfo> タグによって使用される TLS 構成要素を示します。

要素 説明
<Enabled>

Edge と API クライアントの間または Edge とターゲット バックエンドの間の一方向 TLS を有効にします。

仮想ホストの場合、証明書と秘密鍵を含むキーストアを定義する必要があります。

<ClientAuthEnabled>

Edge と API クライアントの間または Edge とターゲット バックエンドの間の双方向 TLS を有効にします。

双方向 TLS を有効にするには、通常、Edge 上のトラストストアおよびトラストストアを設定する必要があります。

<KeyStore> キーストア。
<KeyAlias> 証明書と秘密鍵をキーストアにアップロードしたときに指定されたエイリアス。
<TrustStore> トラストストア。
<IgnoreValidationErrors>

true の場合、Edge は TLS 証明書のエラーを無視します。ターゲット サーバーとターゲット エンドポイントに対して TLS を構成する場合、および双方向 TLS を使用する仮想ホストを構成する場合に有効です。デフォルト値は false です。

ターゲット エンドポイント / ターゲット サーバーで使用する場合、バックエンド システムが SNI を使用し、ホスト名と一致しないサブジェクト識別名(DN)を含む証明書を返すと、エラーを無視できず、接続は失敗します。

<KeyStore> および <TrustStore> 要素の設定について

上の仮想ホストの例では、キーストアとトラストストアは次の形式の参照を使用して指定されています。

    <KeyStore>ref://myKeystoreRef</KeyStore>
    <TrustStore>ref://myTruststoreRef</TrustStore>
    

Apigee では、キーストアとトラストストアに対して常に参照を使用することを強くおすすめします。参照とは、キーストアまたはトラストストアの名前を含む変数です。キーストア名を直接指定しません。この例では、次のとおりです。

  • myKeystoreRef は、キーストアの名前を含む参照です。この例では、キーストアの名前は myKeystore です。
  • myTruststoreRef は、トラストストアの名前を含む参照です。この例では、トラストストアの名前は myTruststore です。

証明書が期限切れになると、仮想ホストまたはターゲット エンドポイント / ターゲット サーバーを更新して、新しい証明書を含むキーストアまたはトラストストアを指定する必要があります。参照の利点は、仮想ホストまたはターゲット エンドポイント / ターゲット サーバー自体を変更することなく、参照の値を変更してキーストアまたはトラストストアを変更できることです。

  • Cloud のお客様の場合: 参照の値を変更する際に、Apigee サポートに連絡する必要はありません。
  • Private Cloud のお客様の場合: 参照の値を変更する際に、Router や Message Processor などの Edge コンポーネントを再起動する必要はありません。

あるいは、キーストア名とトラストストア名を直接指定できます。

    <KeyStore>myKeystore</KeyStore>
    <TrustStore>myTruststore</TrustStore>
    

キーストアまたはトラストストアの名前を直接指定する場合、Cloud のお客様は Apigee サポートに連絡する必要があり、Private Cloud のお客様は証明書を更新するために特定の Edge コンポーネントを再起動する必要があります。

ターゲット エンドポイント / ターゲット サーバーの場合にのみ、3 番目のオプションとして、フロー変数を使用します。

    <KeyStore>{ssl.keystore}</KeyStore>
    <TrustStore>{ssl.truststore}</TrustStore>
    

フロー変数は、ターゲット エンドポイント / ターゲット サーバーに対して機能し、参照と同様にキーストアまたはトラストストアを更新できます。ただし、仮想ホストには機能せず、リクエストごとにキーストア、エイリアス、トラストストアに関する情報を渡す必要があります。

キーストアとトラストストアの参照の使用に関する制限事項

TLS を構成する Cloud の有料のお客様と Private Cloud のすべてのお客様は、キーストアとトラストストアの参照を使用する際に、以下の制限事項を考慮する必要があります。

  • Apigee Router 上で TLS を終端している場合のみ、仮想ホストでキーストアとトラストストアの参照を使用できます。
  • Apigee Router の前にロードバランサが存在し、ロードバランサ上で TLS を終端している場合は、仮想ホストでキーストアとトラストストアの参照を使用できません。

既存の仮想ホストでリテラルのキーストア名またはトラストストア名が使用されている場合

Edge の既存の仮想ホストは、キーストアとトラストストアに対して参照を使用するように構成されていない場合があります。これに該当する場合は、参照を使用するように仮想ホストを更新できます。

  1. Edge for Cloud

    キーストアの参照を使用するように仮想ホストを変更するには、Apigee サポートとの協力が必要になります。

  2. Edge for Private Cloud

    参照を使用するように仮想ホストを変換するには:

    1. 参照を使用するように仮想ホストを更新します。
    2. Router を再起動します。
    詳細については、Private Cloud 用 API への TLS アクセスの構成の「キーストアとトラストストアへの参照を使用するための仮想ホストの変更」をご覧ください。

TLS の構成について

TLS を構成する方法は、次の 2 つの主な要因によって決まります。

  • Edge Cloud のお客様か Private Cloud のお客様か。
  • 期限切れの証明書または期限切れになる証明書をどのように更新するか。

Cloud と Private Cloud の構成オプション

次の表に、Cloud および Private Cloud のお客様用のさまざまな構成オプションを示します。

Private Cloud Cloud
仮想ホスト 完全な制御 有料アカウントのみ完全な制御
ターゲット エンドポイント / ターゲット サーバー 完全な制御 完全な制御

Private Cloud のお客様は、仮想ホストとターゲット エンドポイント / ターゲット サーバーの両方の構成を完全に制御できます。その制御には、仮想ホストを作成および削除し、仮想ホストのすべてのプロパティを設定する機能が含まれます。

Cloud のすべてのお客様(有料と評価版の両方)は、ターゲット エンドポイント / ターゲット サーバーの構成を完全に制御できます。また、Cloud の有料のお客様は、TLS のプロパティを含め、仮想ホストを完全に制御できます。

期限切れの証明書の処理

TLS 証明書が期限切れになった場合、あるいはシステム構成に証明書が無効になるような変更があった場合、証明書の更新が必要です。仮想ホストまたはターゲット エンドポイント / ターゲット サーバー用に TLS を構成する場合、構成を行う前に、その更新をどのように行うかを決定する必要があります。

証明書が期限切れになる場合

Edge では、次の 2 つの場所のいずれかに証明書を格納します。

  • キーストア - TLS handshake でエンティティを識別するために使用される、TLS 証明書と秘密鍵が格納されます。
  • トラストストア - クライアントに提示されている TLS サーバーの証明書を検証するために使用される、TLS クライアント上の信頼済み証明書が格納されます。通常、これらの証明書は、自己署名証明書、信頼できる CA によって署名されている証明書、双方向 TLS の一環として使用される証明書です。

キーストアの証明書が期限切れになり、キーストアの参照を使用している場合、新しい証明書をそのキーストアにアップロードできません。代わりに、次のことを行います。

  1. 新しいキーストアを作成します。
  2. 古いキーストアのときと同じエイリアス名を使用して、新しい証明書を新しいキーストアにアップロードします。
  3. 新しいキーストアを使用するように、仮想ホストまたはターゲット サーバー / ターゲット エンドポイント内の参照を更新します。

トラストストアの証明書が期限切れになり、トラストストアの参照を使用している場合、次のことを行います。

  1. 新しいトラストストアを作成します。
  2. 新しい証明書を新しいトラストストアにアップロードします。トラストストアではエイリアス名は重要ではありません。 : 証明書がチェーンの一部である場合は、すべての証明書を含む 1 つのファイルを作成し、そのファイルを 1 つのエイリアスにアップロードするか、証明書ごとに異なるエイリアスを使用して、トラストストアにチェーン内のすべての証明書を個別にアップロードする必要があります。
  3. 新しいトラストストアを使用するように、仮想ホストまたはターゲット サーバー / ターゲット エンドポイント内の参照を更新します。

期限切れの証明書を更新する方法の概要

証明書を更新する方法は、仮想ホストまたはターゲット エンドポイント / ターゲット サーバーのキーストアとトラストストアの名前を指定するときに使用する方法によって決まります。次のものを使用できます。

  • 参照
  • 直接名
  • フロー変数

どの方法で指定するかによって、更新プロセスは次の表に示すように変わります。ご覧のとおり、参照が Cloud と Private Cloud の両方のお客様にとって最も柔軟性があります。

構成タイプ 証明書の更新 / 置換方法 Private Cloud Cloud
参照(推奨) キーストアの場合は、新しいキーストアを新しい名前で作成し、エイリアスを古いエイリアスと同じ名前で作成します。

トラストストアの場合は、トラストストアを新しい名前で作成します。

キーストアまたはトラストストアの参照を更新します。

Router または Message Processor の再起動は必要ありません。

キーストアまたはトラストストアの参照を更新します。

Apigee サポートに連絡する必要はありません。

フロー変数(ターゲット エンドポイントのみ) キーストアの場合は、新しいキーストアを新しい名前で作成し、エイリアスを同じ名前または新しい名前で作成します。

トラストストアの場合は、トラストストアを新しい名前で作成します。

新しいキーストア、エイリアス、トラストストアの名前を使用して、リクエストごとに更新されたフロー変数を渡します。

Router または Message Processor の再起動は必要ありません。

新しいキーストア、エイリアス、トラストストアの名前を使用して、リクエストごとに更新されたフロー変数を渡します。

Apigee サポートに連絡する必要はありません。

直接 新しいキーストア、エイリアス、トラストストアを作成します。 仮想ホストを更新し、Router を再起動します。

トラストストアがターゲット エンドポイント / ターゲット サーバーによって使用されている場合は、プロキシを再デプロイします。

仮想ホストの場合、Apigee サポートに連絡して Router を再起動します。

トラストストアがターゲット エンドポイント / ターゲット サーバーによって使用されている場合は、プロキシを再デプロイします。

直接 キーストア、トラストストアを削除し、同じ名前で再作成します。 仮想ホストの更新は必要なく、Router の再起動は必要ありません。ただし、新しいキーストアとエイリアスが設定されるまで、API リクエストは失敗します。

キーストアが Edge とバックエンド サービス間の双方向 TLS に使用されている場合は、Message Processor を再起動します。

仮想ホストを更新する必要はありません。ただし、新しいキーストアとエイリアスが設定されるまで、API リクエストは失敗します。

Edge とバックエンド サービス間の双方向 TLS にキーストアが使用されている場合は、Apigee サポートに連絡して Message Processor を再起動します。

直接 トラストストアの場合のみ、新しい証明書をトラストストアにアップロードします。 トラストストアが仮想ホストによって使用されている場合は、Router を再起動します。

トラストストアがターゲット エンドポイント / ターゲット サーバーによって使用されている場合は、Message Processor を再起動します。

仮想ホストの場合、Apigee サポートに連絡して Edge Router を再起動します。

トラストストアがターゲット エンドポイント / ターゲット サーバーによって使用されている場合は、Apigee サポートに連絡して Message Processor を再起動します。