暗号化用に Application Gateway リスナーを構成する

完了

Azure Application Gateway とバックエンド プール内のサーバー間の接続用に SSL を構成しました。 配送ポータルには、完全なエンドツーエンドの暗号化が必要です。 この暗号化を実行するには、クライアントが Application Gateway に送信するメッセージを暗号化する必要もあります。

フロントエンド ポートを作成する

Application Gateway では、1 つまたは複数のポートを介して要求を受信します。 HTTPS 経由でゲートウェイと通信する場合は、SSL ポートを構成する必要があります。 従来、HTTPS はポート 443 を使用しています。 az network application-gateway frontend-port create コマンドを使用して新しいフロントエンド ポートを作成します。 次の例は、ポート 443 のフロントエンド ポートを作成する方法を示しています。

az network application-gateway frontend-port create \
    --resource-group $rgName \
    --gateway-name gw-shipping  \
    --name my-https-port \
    --port 443

リスナーを構成する

リスナーは、指定されたフロントエンド ポートでゲートウェイへの受信トラフィックを待機します。 その後、このトラフィックはバックエンド プール内のサーバーにルーティングされます。 フロントエンド ポートで SSL を使用する場合は、受信メッセージの暗号化の解除に使用する証明書を示す必要があります。 証明書には秘密キーが含まれます。

証明書は、az network application-gateway ssl-cert create コマンドを使用して追加することができます。 証明書ファイルは PFX 形式にする必要があります。 このファイルには秘密キーが含まれているため、パスワードで保護されている可能性もあります。 次の例に示すように、cert-password 引数にパスワードを指定します。

az network application-gateway ssl-cert create \
   --resource-group $rgName \
   --gateway-name gw-shipping \
   --name shipping-ssl.crt \
   --cert-file shippingportal/server-config/shipping-ssl.pfx \
   --cert-password <password for certificate file>

その後、フロントエンド ポートから要求を受信し、この証明書を使用してそれらの暗号化を解除するリスナーを作成できます。 az network application-gateway http-listener create コマンドを使用します。

az network application-gateway http-listener create \
    --resource-group $rgName \
    --gateway-name gw-shipping \
    --name http-listener \
    --frontend-port my-https-port \
    --ssl-cert shipping-ssl.crt

サーバーに HTTPS 要求を送信する規則を定義する

最後の手順は、リスナーを介して受信されたメッセージをバックエンド プール内のサーバーに送信する規則を作成することです。 フロントエンド ポートから受信されたメッセージは、リスナーに指定された SSL 証明書を介して暗号化が解除されます。 これらのメッセージは、バックエンド プール内のサーバーのクライアント側証明書を使用して、再暗号化する必要があります。 規則でこの情報を定義します。

次の例は、az network application-gateway rule create コマンドを使用してリスナーをバックエンド プールに接続する規則を作成する方法を示しています。 --http-settings パラメーターでは、サーバーのクライアント側証明書を参照する HTTP 設定が指定されます。 これらの設定は前のユニットで作成しました。

az network application-gateway rule create \
    --resource-group $rgName \
    --gateway-name gw-shipping \
    --name app-gw-rule \
    --address-pool ap-backend \
    --http-listener http-listener \
    --http-settings https-settings \
    --rule-type Basic
    --priority 101

これで、Application Gateway を介してルーティングされたメッセージが完全なエンドツーエンドで暗号化されるはずです。 クライアントでは、Application Gateway 用の SSL 証明書を使用してメッセージが送信されます。 Application Gateway では、この SSL 証明書を使用して、これらのメッセージの暗号化を解除します。 メッセージは、バックエンド プール内のサーバーの証明書を使用して、再暗号化する必要があります。