Edge Message Processor とバックエンド サーバー間の SNI を構成する

<ph type="x-smartling-placeholder"></ph> 現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメント
詳細

<ph type="x-smartling-placeholder">

Server Name Indication(SNI)を使用すると、複数の HTTPS バックエンド サーバーを同じサービスから提供できます。 IP アドレスとポート。これらのバックエンド サーバーで同じ TLS 証明書を使用する必要はありません。 これは TLS プロトコルの拡張機能です。クライアントで SNI が有効になっている場合、クライアントは 最初の TLS handshake の一環として行われるバックエンド サーバーのホスト名。これにより TLS サーバーにより、送信元からのリクエストを検証するために使用する TLS 証明書が決定されます。 できます。

デフォルトでは、Edge for Private Cloud の Message Processor コンポーネントでは SNI が無効になっています。 既存のバックエンド サーバーとの下位互換性を確保できます。バックエンド サーバーが SNI をサポートするように構成されている場合は、Message Processor コンポーネントで SNI を有効にする必要があります。 そうしないと、Apigee Edge を通過する API リクエストが TLS handshake の失敗

このドキュメントでは、次の操作を行う方法について説明します。

始める前に

SNI が有効なサーバーの識別

このセクションでは、バックエンド サーバーで SNI が有効になっているかどうかを確認する方法について説明します。

  1. openssl コマンドを実行し、関連するサーバーのホスト名への接続を試みます。 以下に示すように、サーバー名を渡さずに(Edge Router またはバックエンド サーバー)。
    openssl s_client -connect hostname:port
    
  2. 証明書を取得することもでき、ハンドシェイクの失敗が openssl コマンドを使用します。
    CONNECTED(00000003) 9362:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:593
    
  3. openssl コマンドを実行して、関連するサーバーに接続してみます。 ホスト名(エッジルーターまたはバックエンド サーバー)を作成します。以下のようにサーバー名を渡します
    openssl s_client -connect hostname:port -servername hostname
    
  4. ステップ 1 で handshake に失敗した場合や、ステップ 1 とステップ 2 で異なる証明書を取得する場合は、 これは、指定したサーバーで SNI が有効になっていることを示します。
  5. 複数のバックエンド サーバーでこれを検証する場合は、次の操作を行う必要があります。 バックエンド サーバーごとに上記の手順を繰り返します。

SNI が有効になっているバックエンド サーバーが 1 つ以上ある場合、次のことを行う必要があります。 Message Processor コンポーネントで SNI を有効にします。それ以外の場合、API Apigee Edge を通過するリクエストは失敗します。 TLS handshake の失敗

Edge Message Processor とバックエンド サーバー間の SNI を有効にする

このセクションでは、Edge Message Processor とバックエンド間の SNI を有効にする方法について説明します。 あります。SNI は、次のプロパティ jsse.enableSNIExtension を使用して有効にできます。 Message Processor コンポーネントについて説明します。Message Processor のプロパティを構成するには、次のコマンドを使用します。 構文に従ってトークンを Edge の構成方法

<ph type="x-smartling-placeholder">

Message Processor で SNI を有効にするには、次の操作を行います。

  1. jsse.enableSNIExtension プロパティのトークンを探す
  2. Message Processor で SNI を有効にする

jsse.enableSNIExtension プロパティのトークンを見つける

次のステップでは、Google Cloud Storage の jsse.enableSNIExtension プロパティ:

  1. Message Processor ソースで jsse.enableSNIExtension プロパティを検索します。 次のコマンドを使用して、/opt/apigee/edge-message-processor/source ディレクトリに移動します。
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
    
  2. このコマンドの出力には、Message Processor のプロパティに対するトークンが表示されます。 jsse.enableSNIExtension は次のようになります。
    /opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}
    

    ここで、{T}{/T} タグの間の文字列は、 Message Processor の .properties ファイルで設定できます。

    したがって、プロパティ jsse.enableSNIExtension のトークンは次のようになります。

    conf_system_jsse.enableSNIExtension
    

Message Processor で SNI を有効にする

次の手順では、Apigee Message Processor コンポーネントで SNI を有効にする方法について説明します。

  1. Message Processor マシンで、次のファイルをエディタで開きます。オンになっていない場合 作成します。
    /opt/apigee/customer/application/message-processor.properties
    

    たとえば、ファイルを開くには、 vi の場合は、次のコマンドを入力します。

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. プロパティ ファイルに次の形式の行を追加します。
    conf_system_jsse.enableSNIExtension=true
    
  3. 変更を保存します。
  4. 以下に示すように、このプロパティ ファイルの所有者が apigee ユーザーであることを確認します。
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. 次のように Message Processor を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Google Cloud コンソールで SNI 構成が Message Processor
  7. 複数の Message Processor がある場合は、すべての Message Processor です。

Edge Message Processor とバックエンド サーバー間の SNI を無効にする

SNI を有効にした後は、通常は問題はありません。ところが、 バックエンド サーバーへの接続の問題が発生した場合、 SNI を有効にする場合は、次の手順でいつでも SNI を無効にできます。

SNI は、プロパティ jsse.enableSNIExtension を設定することで無効にできます。 Message Processor コンポーネントの false に戻ります。

<ph type="x-smartling-placeholder">

Message Processor で SNI を無効にする

次の手順では、Apigee Message Processor で SNI を無効にする方法について説明します。

  1. Message Processor マシンで、次のファイルをエディタで開きます。オンになっていない場合 作成します。
    /opt/apigee/customer/application/message-processor.properties
    

    たとえば、ファイルを開くには、 vi の場合は、次のコマンドを入力します。

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. conf_system_jsse.enableSNIExtension=true」という行が /opt/apigee/customer/application/message-processor.properties に変更し、次のように変更します。 次のようになります。
    conf_system_jsse.enableSNIExtension=false
    
  3. 変更を保存します。
  4. 以下に示すように、このプロパティ ファイルの所有者が apigee ユーザーであることを確認します。
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. 次のように Message Processor を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Google Cloud コンソールで SNI 構成が Message Processor
  7. 複数の Message Processor がある場合は、すべての Message Processor です。

Message Processor での SNI 構成の確認

このセクションでは、SNI 構成が正常に行われたことを確認する方法について説明します。 Message Processor を更新します。

トークン conf_system_jsse.enableSNIExtension を使用して、 Message Processor で SNI を構成するには、実際のプロパティが jsse.enableSNIExtension に新しい値が設定されています。

  1. Message Processor マシンで、jsse.enableSNIExtension プロパティを検索します。 /opt/apigee/edge-message-processor/conf ディレクトリにファイルが表示され、 次のように新しい値が設定されます。
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
    
  2. Message Processor で SNI 構成が正常に更新されると、 上記のコマンドは、system.properties ファイルの新しい値を表示します。

    Message Processor で SNI を有効にした後の上記のコマンドの結果例 内容は次のとおりです。

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
    

    同様に、Cloud Shell で SNI を無効にした後の上記のコマンドのサンプル結果は、 Message Processor は次のとおりです。

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
    

    上の出力例では、プロパティ jsse.enableSNIExtension が は、次の新しい値 true または false に更新されました: system.properties。これは、SNI が正常に有効または 無効にすることもできます。

  3. プロパティ jsse.enableSNIExtension に古い値が引き続き表示される場合は、次の点に注意してください。 該当するセクションに記載されているすべての手順に従って、 SNI を正しく無効にできます途中を抜けた場合は、すべての手順を正しく繰り返します。
  4. それでも SNI を有効または無効にできない場合は、 Apigee Edge のサポート