暗号化用にバックエンド プールを構成する

完了

バックエンド プールには、アプリケーションを実装するサーバーが含まれています。 Azure Application Gateway はこれらのサーバーに要求をルーティングし、これらのサーバー間でトラフィックを負荷分散できます。

配布ポータルでは、バックエンド プール内のアプリケーション サーバーで SSL を使用して、Application Gateway とバックエンド プール内のサーバーの間で渡されるデータを暗号化する必要があります。 Application Gateway では、SSL 証明書と公開キーを使用してデータを暗号化します。 サーバーは、対応する秘密キーを使用して、受信時にデータの暗号化を解除します。 このユニットでは、バックエンド プールを作成し、必要な証明書を Application Gateway にインストールする方法について説明します。 これらの証明書は、バックエンド プールとの間で送受信されるメッセージを保護するのに役立ちます。

Application Gateway からバックエンド プールへの暗号化

バックエンド プールは、個々の仮想マシン、仮想マシン スケール セット、実際のコンピューター (オンプレミスまたはリモートで実行されている) の IP アドレス、または Azure App Service を介してホストされているサービスを参照できます。 バックエンド プール内のすべてのサーバーは、セキュリティ設定を含め、同じ方法で構成する必要があります。

Application Gateway が Web サーバーに要求をルーティングする方法を示す図。

バックエンド プールに送信されるトラフィックが SSL を介して保護されている場合は、バックエンド プール内の各サーバーが適切な証明書を提供する必要があります。 テスト目的で、自己署名証明書を作成できます。 運用環境では、証明機関 (CA) が認証できる証明書を常に生成または購入する必要があります。

現在、Application Gateway には v1 と v2 の 2 つのバージョンがあります。 同様の機能がありますが、実装の詳細が若干異なります。 v2 バージョンでは、より多くの機能とパフォーマンスの向上が提供されます。

Application Gateway v1 での証明書の構成

Application Gateway v1 では、ゲートウェイ構成でサーバーの認証証明書をインストールする必要があります。 この証明書には、Application Gateway がメッセージの暗号化とサーバーの認証に使用する公開キーが含まれています。 この証明書は、サーバーからエクスポートすることで作成できます。 アプリケーション サーバーは、これらのメッセージの暗号化を解除するために、対応する秘密キーを使用します。 この秘密キーは、アプリケーション サーバーにのみ格納する必要があります。

Azure CLI の az network application-gateway auth-cert create コマンドを使用して、認証証明書を Application Gateway に追加できます。 次の例は、このコマンドの構文を示しています。 証明書は CER (要求、証拠、および推論) 形式である必要があります。

az network application-gateway auth-cert create \
    --resource-group <resource group name> \
    --gateway-name <application gateway name> \
    --name <certificate name> \
    --cert-file <path to authentication certificate>

Application Gateway には、認証証明書の一覧表示と管理に使用できるその他のコマンドが用意されています。 例えば次が挙げられます。

  • az network application-gateway auth-cert list コマンドには、インストールされている証明書が表示されます。
  • az network application-gateway auth-cert update コマンドを使用して、証明書を変更できます。
  • az network application-gateway auth-cert delete コマンドは証明書を削除します。

Application Gateway v2 での証明書の構成

Application Gateway v2 の認証要件は若干異なります。 バックエンド プール内のサーバーの SSL 証明書を認証した証明機関の証明書を指定します。 この証明書は、信頼されたルート証明書として Application Gateway に追加します。 Azure CLI の az network application-gateway root-cert create コマンドを使用します。

az network application-gateway root-cert create \
      --resource-group <resource group name> \
      --gateway-name <application gateway name> \
      --name <certificate name> \
      --cert-file <path to trusted CA certificate>

サーバーで自己署名証明書を使用している場合は、Application Gateway で信頼されたルート証明書としてこの証明書を追加します。

HTTP 設定

Application Gateway は ルール を使用して、受信ポートで受信したメッセージをバックエンド プール内のサーバーに転送する方法を指定します。 サーバーが SSL を使用している場合は、次を示すように規則を構成する必要があります。

  • サーバーは、HTTPS プロトコルを介したトラフィックを想定しています。
  • トラフィックの暗号化とサーバーへの接続の認証に使用する証明書。

この構成情報は 、HTTP 設定を使用して定義します。

HTTP 設定は、Azure CLI の az network application-gateway http-settings create コマンドを使用して定義できます。 次の例は、HTTPS プロトコルを使用してバックエンド プール内のサーバー上のポート 443 にトラフィックをルーティングする設定を作成するための構文を示しています。 Application Gateway v1 を使用している場合、 --auth-certs パラメーターは、前に Application Gateway に追加した認証証明書の名前です。

az network application-gateway http-settings create \
    --resource-group <resource group name> \
    --gateway-name <application gateway name> \
    --name <HTTPS settings name> \
    --port 443 \
    --protocol Https \
    --auth-certs <certificate name>

Application Gateway v2 を使用している場合は、 --auth-certs パラメーターを省略します。 Application Gateway がバックエンド サーバーに接続します。 これは、信頼されたルート証明書の一覧で指定された CA に対してサーバーが提供する証明書の信頼性を検証します。 一致するものがない場合、Application Gateway はバックエンド サーバーに接続せず、HTTP 502 (Bad Gateway) エラーで失敗します。