Cloud の TLS 証明書を更新する

証明書を更新する方法は、仮想ホストまたはターゲット エンドポイント / ターゲット サーバーでキーストアとトラストストアの名前がどのように指定されているかによって異なります。キーストアとトラストストアの名前は次の方法で指定できます。

  • 参照 - 推奨
  • 直接指定
  • フロー変数

どの方法が使用されているかによって、証明書の更新プロセスは次の表のように変わります。

構成タイプ 証明書を更新または置換する方法 仮想ホスト、ターゲット エンドポイント / ターゲット サーバーの更新方法
参照(推奨)

キーストアについては、新しいキーストアを新しい名前で作成し、エイリアスを古いエイリアスと同じ名前にします。

トラストストアについては、トラストストアを新しい名前で作成します。

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

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

フロー変数(ターゲット エンドポイントのみ)

キーストアについては、新しいキーストアを新しい名前で作成し、エイリアスを同じ名前または新しい名前にします。

トラストストアについては、トラストストアを新しい名前で作成します。

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

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

直接 新しいキーストア、エイリアス、トラストストアを作成します。

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

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

直接 キーストアまたはトラストストアを削除し、同じ名前で再作成します。

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

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

直接 トラストストアについてのみ、新しい証明書をトラストストアにアップロードします。

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

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

更新前と更新後の証明書のテスト

証明書を更新する前に、次の openssl コマンドを使用して現在の証明書をテストします。

echo | openssl s_client -servername ORG-ENV.apigee.net -connect ORG-ENV.apigee.net:443 2>/dev/null | openssl x509 -noout -dates -subject

ここで、ORG-ENV は組織と環境です。次に例を示します。

echo | openssl s_client -servername myOrg-prod.apigee.net -connect myOrg-prod.apigee.net:443 2>/dev/null | openssl x509 -noout -dates -subject

出力は次のようになります。

notBefore=Dec 30 22:11:38 2015 GMT
notAfter=Dec 30 22:11:38 2016 GMT
subject= /OU=Domain Control Validated/CN=*.apigee.net

証明書を更新した後、同じコマンドで証明書をテストします。

仮想ホストまたはターゲット エンドポイント / ターゲット サーバーでキーストアとトラストストアがどのように参照されているかを確認する

  1. Edge 管理 UI(https://enterprise.apigee.com)にログインします。
  2. Edge 管理 UI のメニューで、組織の名前を選択します。
  3. 仮想ホストの場合、仮想ホストでキーストアとトラストストアがどのように指定されているかを確認します。
    1. Edge UI のバージョンに応じて、次のようにします。
      1. Classic Edge UI を使用している場合は、[APIs] > [Environment Configuration] を選択します。
      2. New Edge UI を使用している場合は、[Admin] > [Environments] を選択します。
    2. [Virtual Hosts] タブを選択します。
    3. 更新する特定の仮想ホストについて、[Show] ボタンを選択してプロパティを表示します。次のプロパティが表示されます。
      1. キーストア: 現在のキーストアの名前。通常は ref://mykeystoreref 形式の参照として指定されています。

        あるいは、myKeystoreName 形式の直接名、または {ssl.keystore} 形式のフロー変数として指定されている場合もあります。
      2. キーエイリアス: このプロパティの値は、キーストアのエイリアス名です。新しいキーストアでも同じ名前のエイリアスを作成する必要があります。
      3. トラストストア: 現在のトラストストアの名前(通常は ref://mytruststoreref 形式の参照として指定されています)。

        あるいは、myTruststoreName 形式の直接名、または {ssl.truststorestore} 形式のフロー変数として指定されている場合もあります。
  4. ターゲット エンドポイント / ターゲット サーバーの場合、ターゲット エンドポイントでキーストアとトラストストアがどのように指定されているかを確認します。
    1. Edge 管理 UI のメニューで、[APIs] を選択します。
    2. API プロキシの名前を選択します。
    3. [Development] タブを選択します。
    4. [Target Endpoints] で、[default] を選択します。
    5. コード領域に TargetEndpoint の定義が表示されます。<SSLInfo> 要素でキーストアとトラストストアがどのように定義されているかを確認します。

      : ターゲット エンドポイントでターゲット サーバーが使用されている場合、ターゲット エンドポイントの XML 定義は次のようになります。API プロキシが使用するターゲット サーバーは <LoadBalancer> タグで指定されています。
      <TargetEndpoint name="default">
        …
        <HTTPTargetConnection>
          <LoadBalancer>
            <Server name="target1" />
            <Server name="target2" />
          </LoadBalancer>
          <Path>/test</Path>
        </HTTPTargetConnection>
          …
      </TargetEndpoint>
      ターゲット サーバーの定義に含まれる <SSLInfo> 要素でキーストアとトラストストアがどのように定義されているかを確認します。

キーストア内の TLS 証明書の更新

キーストア内の証明書が期限切れになったとき、新しい証明書を同じキーストアにアップロードすることはできません。その代わりに、新しいキーストアを作成して証明書をアップロードしてから、仮想ホストまたはターゲット サーバー / ターゲット エンドポイントを更新して新しいキーストアが使用されるようにします。

通常は、現在の証明書が期限切れになる前に新しいキーストアを作成し、仮想ホストまたはターゲット エンドポイントを更新して新しいキーストアが使用されるようにします。そのため、証明書の期限切れが原因でリクエストの処理が中断されることはありません。その後、新しいキーストアが正しく機能していることを確認してから、古いキーストアを削除できます。

Cloud ベースの Edge デプロイの場合:

  1. Edge UI を使用したキーストアとトラストストアの作成の説明に従って新しいキーストアを作成し、証明書と鍵をアップロードします。

    新しいキーストアでは、キーエイリアスの名前を既存のキーストアで使用していたものと同じ名前にしてください。

  2. インバウンド接続(Edge への API リクエスト)で使用される仮想ホストの場合:
    1. 仮想ホストでキーストアへの参照を使用している場合は、参照を更新します。
    2. 仮想ホストでキーストアの名前を直接使用している場合は、Apigee サポートに連絡してください。
  3. アウトバウンド接続(Apigee からバックエンド サーバーへの接続)で使用されるターゲット エンドポイント / ターゲット サーバーの場合:
    1. ターゲット エンドポイント / ターゲット サーバーでキーストアへの参照を使用している場合は、参照を更新します。プロキシの再デプロイは必要ありません。
    2. ターゲット エンドポイント / ターゲット サーバーでフロー変数を使用している場合は、フロー変数を更新します。プロキシの再デプロイは必要ありません。
    3. ターゲット エンドポイント / ターゲット サーバーでキーストアの直接名を使用している場合は、古いキーストアとキーエイリアスを参照していた API プロキシのターゲット エンドポイント / ターゲット サーバー構成を更新し、新しいキーストアとキーエイリアスを参照します。

      プロキシを再デプロイする必要があります。

  4. 新しいキーストアが正常に機能していることを確認したら、期限切れの証明書と鍵を含む古いキーストアを削除します。

トラストストア内の TLS 証明書の更新

トラストストア内の証明書が期限切れになったら、通常、新しいトラストストアを作成して証明書をアップロードしてから、仮想ホストまたはターゲット サーバー / ターゲット エンドポイントを更新して新しいトラストストアが使用されるようにします。

証明書がチェーンの一部である場合は、すべての証明書を含む 1 つのファイルを作成してそのファイルを 1 つのエイリアスにアップロードするか、チェーン内のすべての証明書をトラストストアに個別にアップロードして証明書ごとに異なるエイリアスを使用する必要があります。

通常は、現在の証明書が期限切れになる前に新しいトラストストアを作成し、仮想ホストまたはターゲット エンドポイントを更新して新しいトラストストアが使用されるようにします。そのため、証明書の期限切れが原因でリクエストの処理が中断されることはありません。その後、新しいトラストストアが正常に機能していることを確認してから、古いトラストストアを削除できます。

Cloud ベースの Edge デプロイの場合:

  1. Edge UI を使用したキーストアとトラストストアの作成の説明に従って新しいトラストストアを作成し、証明書をアップロードします。

    新しい証明書を新しいトラストストアにアップロードするときに、エイリアス名は重要ではありません。

  2. インバウンド接続(Edge への API リクエスト)で使用される仮想ホストの場合:
    1. 仮想ホストでトラストストアへの参照を使用している場合は、参照を更新します。
    2. 仮想ホストでトラストストアの名前を直接使用している場合は、Apigee サポートに連絡してください。
  3. アウトバウンド接続(Apigee からバックエンド サーバーへの接続)で使用されるターゲット エンドポイント / ターゲット サーバーの場合:
    1. ターゲット エンドポイント / ターゲット サーバーでトラストストアへの参照を使用している場合は、参照を更新します。プロキシの再デプロイは必要ありません。
    2. ターゲット エンドポイント / ターゲット サーバーでフロー変数を使用している場合は、フロー変数を更新します。プロキシの再デプロイは必要ありません。
    3. ターゲット エンドポイント / ターゲット サーバーでトラストストアの直接名を使用している場合は、古いトラストストアを参照していた API プロキシのターゲット エンドポイント / ターゲット サーバー構成を更新し、新しいキーストアとキーエイリアスを参照します。

      プロキシを再デプロイする必要があります。

  4. 新しいトラストストアが正常に機能していることを確認したら、期限切れの証明書を含む古いトラストストアを削除します。