クラシック デプロイ モデルを使用して SSL オフロード用にアプリケーション ゲートウェイを構成するConfigure an application gateway for SSL offload by using the classic deployment model

Azure Application Gateway をゲートウェイでの Secure Sockets Layer (SSL) セッションを停止するように構成し、Web ファーム上で発生するコストのかかる SSL 暗号化解除タスクを回避することができます。Azure Application Gateway can be configured to terminate the Secure Sockets Layer (SSL) session at the gateway to avoid costly SSL decryption tasks to happen at the web farm. また、SSL オフロードはフロントエンド サーバーのセットアップと Web アプリケーションの管理も簡素化します。SSL offload also simplifies the front-end server setup and management of the web application.

開始する前にBefore you begin

  1. Web Platform Installer を使用して、Azure PowerShell コマンドレットの最新バージョンをインストールします。Install the latest version of the Azure PowerShell cmdlets by using the Web Platform Installer. ダウンロード ページWindows PowerShellセクションから最新バージョンをダウンロードしてインストールできます。You can download and install the latest version from the Windows PowerShell section of the Downloads page.
  2. 有効なサブネットがある作業用の仮想ネットワークがあることを確認します。Verify that you have a working virtual network with a valid subnet. 仮想マシンまたはクラウドのデプロイメントでサブネットを使用していないことを確認します。Make sure that no virtual machines or cloud deployments are using the subnet. Application Gateway そのものが、仮想ネットワーク サブネットに含まれている必要があります。The application gateway must be by itself in a virtual network subnet.
  3. アプリケーション ゲートウェイを使用するように構成するサーバーが存在している必要があります。または、それらのエンドポイントが仮想ネットワーク内に作成されているか、パブリック IP または仮想 IP アドレス (VIP) が割り当てられている必要があります。The servers that you configure to use the application gateway must exist or have their endpoints that are created either in the virtual network or with a public IP address or virtual IP address (VIP) assigned.

アプリケーション ゲートウェイで SSL オフロードを構成するには、次の手順をそのままの順序で完了します。To configure SSL offload on an application gateway, complete the following steps in the order listed:

  1. アプリケーション ゲートウェイの作成Create an application gateway
  2. SSL 証明書のアップロードUpload SSL certificates
  3. ゲートウェイの構成Configure the gateway
  4. ゲートウェイ構成の設定Set the gateway configuration
  5. ゲートウェイの起動Start the gateway
  6. ゲートウェイの状態の確認Verify the gateway status

アプリケーション ゲートウェイの作成Create an application gateway

ゲートウェイを作成するには、値を独自の値に置き換えて、New-AzureApplicationGateway コマンドレットを入力します。To create the gateway, enter the New-AzureApplicationGateway cmdlet, replacing the values with your own. この時点ではゲートウェイの課金は開始されません。Billing for the gateway does not start at this point. 課金は後の手順でゲートウェイが正しく起動されたときに開始します。Billing begins in a later step, when the gateway is successfully started.

New-AzureApplicationGateway -Name AppGwTest -VnetName testvnet1 -Subnets @("Subnet-1")

ゲートウェイが作成されたことを確認するには、Get-AzureApplicationGateway コマンドレットを入力します。To validate that the gateway was created, you can enter the Get-AzureApplicationGateway cmdlet.

サンプルでは、DescriptionInstanceCount、および GatewaySize は省略可能なパラメーターです。In the sample, Description, InstanceCount, and GatewaySize are optional parameters. InstanceCount の既定値は 2、最大値は 10 です。The default value for InstanceCount is 2, with a maximum value of 10. GatewaySize の既定値は Medium です。The default value for GatewaySize is Medium. その他の値は Small および Large です。Small and Large are other available values. ゲートウェイがまだ起動していないため、VirtualIPsDnsName は空白で表示されます。VirtualIPs and DnsName are shown as blank, because the gateway has not started yet. これらの値は、ゲートウェイが実行中の状態になったときに作成されます。These values are created after the gateway is in the running state.

Get-AzureApplicationGateway AppGwTest

SSL 証明書のアップロードUpload SSL certificates

Add-AzureApplicationGatewaySslCertificate を入力して、サーバー証明書を PFX 形式でアプリケーション ゲートウェイにアップロードします。Enter Add-AzureApplicationGatewaySslCertificate to upload the server certificate in PFX format to the application gateway. 証明書の名前はユーザーが指定し、アプリケーション ゲートウェイ内で一意である必要があります。The certificate name is a user-chosen name and must be unique within the application gateway. この証明書はアプリケーション ゲートウェイ上のすべての証明書管理操作でこの名前で呼ばれます。This certificate is referred to by this name in all certificate management operations on the application gateway.

次のサンプルは、このコマンドレットを示しています。The following sample shows the cmdlet. サンプルの値は実際の値に置き換えてください。Replace the values in the sample with your own.

Add-AzureApplicationGatewaySslCertificate  -Name AppGwTest -CertificateName GWCert -Password <password> -CertificateFile <full path to pfx file>

次に、証明書のアップロードを検証します。Next, validate the certificate upload. Get-AzureApplicationGatewayCertificate コマンドレットを入力します。Enter the Get-AzureApplicationGatewayCertificate cmdlet.

次のサンプルは、コマンドレットの 1 行目とその出力を示しています。The following sample shows the cmdlet on the first line, followed by the output:

Get-AzureApplicationGatewaySslCertificate AppGwTest
VERBOSE: 5:07:54 PM - Begin Operation: Get-AzureApplicationGatewaySslCertificate
VERBOSE: 5:07:55 PM - Completed Operation: Get-AzureApplicationGatewaySslCertificate
Name           : SslCert
SubjectName    : CN=gwcert.app.test.contoso.com
Thumbprint     : AF5ADD77E160A01A6......EE48D1A
ThumbprintAlgo : sha1RSA
State..........: Provisioned

注意

証明書のパスワードは、4 ~ 12 文字の英数字で指定する必要があります。The certificate password must be between 4 to 12 characters made up of letters or numbers. 特殊文字は使用できません。Special characters are not accepted.

ゲートウェイの構成Configure the gateway

アプリケーション ゲートウェイの構成は、複数の値で構成されます。An application gateway configuration consists of multiple values. 値を相互に関連付けて構成を作成します。The values can be tied together to construct the configuration.

値は次のとおりです。The values are:

  • バックエンド サーバー プール: バックエンド サーバーの IP アドレスの一覧。Back-end server pool: The list of IP addresses of the back-end servers. 一覧の IP アドレスは、仮想ネットワークのサブネットに属しているか、パブリック IP または VIP アドレスである必要があります。The IP addresses listed should belong to the virtual network subnet or should be a public IP or VIP address.
  • バックエンド サーバー プール設定: すべてのプールには、ポート、プロトコル、cookie ベースのアフィニティなどの設定があります。Back-end server pool settings: Every pool has settings like port, protocol, and cookie-based affinity. これらの設定はプールに関連付けられ、プール内のすべてのサーバーに適用されます。These settings are tied to a pool and are applied to all servers within the pool.
  • フロントエンド ポート: このポートは、アプリケーション ゲートウェイで開かれたパブリック ポートです。Front-end port: This port is the public port that is opened on the application gateway. このポートにトラフィックがヒットすると、バックエンド サーバーのいずれかにリダイレクトされます。Traffic hits this port, and then gets redirected to one of the back-end servers.
  • リスナー: リスナーには、フロントエンド ポート、プロトコル (Http または Https で、値には大文字小文字の区別あり)、SSL 証明書名 (オフロードの SSL を構成する場合) があります。Listener: The listener has a front-end port, a protocol (Http or Https; these values are case-sensitive), and the SSL certificate name (if configuring an SSL offload).
  • ルール: ルールはリスナーとバックエンド サーバー プールを結び付け、特定のリスナーにヒットしたときにトラフィックが送られるバックエンド サーバー プールを定義します。Rule: The rule binds the listener and the back-end server pool and defines which back-end server pool to direct the traffic to when it hits a particular listener. 現在、 basic ルールのみサポートされます。Currently, only the basic rule is supported. basic ルールは、ラウンド ロビンの負荷分散です。The basic rule is round-robin load distribution.

構成に関する追加の注意Additional configuration notes

SSL 証明書の構成では、 HttpListener のプロトコルを Https (大文字小文字の区別あり) に変更する必要があります。For SSL certificates configuration, the protocol in HttpListener should change to Https (case sensitive). SslCertificate 要素を、「SSL 証明書のアップロード」セクションで使用したのと同じ名前に設定された値を使用して、HttpListener に追加します。Add the SslCert element to HttpListener with the value set to the same name used in the Upload SSL certificates section. フロントエンド ポートは 443 に更新する必要があります。The front-end port should be updated to 443.

Cookie ベースのアフィニティを有効にするには: クライアント セッションからの要求が確実に Web ファーム内の同じ VM に送られるようにアプリケーション ゲートウェイを構成できます。To enable cookie-based affinity: You can configure an application gateway to ensure that a request from a client session is always directed to the same VM in the web farm. これを実現するには、ゲートウェイがトラフィックを適切に送ることを可能にするセッション Cookie を挿入します。To accomplish this, insert a session cookie that allows the gateway to direct traffic appropriately. Cookie ベースのアフィニティを有効にするには、BackendHttpSettings 要素で CookieBasedAffinityEnabled に設定します。To enable cookie-based affinity, set CookieBasedAffinity to Enabled in the BackendHttpSettings element.

構成は、構成オブジェクトを作成するか、構成 XML ファイルを使用して構築できます。You can construct your configuration either by creating a configuration object or by using a configuration XML file. 構成 XML ファイルを使用して構成を構築するには、次のサンプルを入力します。To construct your configuration by using a configuration XML file, enter the following sample:

<?xml version="1.0" encoding="utf-8"?>
<ApplicationGatewayConfiguration xmlns:i="https://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/windowsazure">
    <FrontendIPConfigurations />
    <FrontendPorts>
        <FrontendPort>
            <Name>FrontendPort1</Name>
            <Port>443</Port>
        </FrontendPort>
    </FrontendPorts>
    <BackendAddressPools>
        <BackendAddressPool>
            <Name>BackendPool1</Name>
            <IPAddresses>
                <IPAddress>10.0.0.1</IPAddress>
                <IPAddress>10.0.0.2</IPAddress>
            </IPAddresses>
        </BackendAddressPool>
    </BackendAddressPools>
    <BackendHttpSettingsList>
        <BackendHttpSettings>
            <Name>BackendSetting1</Name>
            <Port>80</Port>
            <Protocol>Http</Protocol>
            <CookieBasedAffinity>Enabled</CookieBasedAffinity>
        </BackendHttpSettings>
    </BackendHttpSettingsList>
    <HttpListeners>
        <HttpListener>
            <Name>HTTPListener1</Name>
            <FrontendPort>FrontendPort1</FrontendPort>
            <Protocol>Https</Protocol>
            <SslCert>GWCert</SslCert>
        </HttpListener>
    </HttpListeners>
    <HttpLoadBalancingRules>
        <HttpLoadBalancingRule>
            <Name>HttpLBRule1</Name>
            <Type>basic</Type>
            <BackendHttpSettings>BackendSetting1</BackendHttpSettings>
            <Listener>HTTPListener1</Listener>
            <BackendAddressPool>BackendPool1</BackendAddressPool>
        </HttpLoadBalancingRule>
    </HttpLoadBalancingRules>
</ApplicationGatewayConfiguration>

ゲートウェイ構成の設定Set the gateway configuration

次に、Application Gateway を設定します。Next, set the application gateway. 構成オブジェクトまたは構成 XML ファイルのいずれの場合でも、Set-AzureApplicationGatewayConfig コマンドレットを入力できます。You can enter the Set-AzureApplicationGatewayConfig cmdlet with either a configuration object or a configuration XML file.

Set-AzureApplicationGatewayConfig -Name AppGwTest -ConfigFile D:\config.xml

ゲートウェイの起動Start the gateway

ゲートウェイが構成されたら、Start-AzureApplicationGateway コマンドレットを入力してゲートウェイを起動します。After the gateway has been configured, enter the Start-AzureApplicationGateway cmdlet to start the gateway. Application Gateway の課金は、ゲートウェイが正常に起動された後に開始します。Billing for an application gateway begins after the gateway has been successfully started.

注意

Start-AzureApplicationGateway コマンドレットは、終了するまで 15 ~ 20 分かかる可能性があります。The Start-AzureApplicationGateway cmdlet can take 15-20 minutes to finish.

Start-AzureApplicationGateway AppGwTest

ゲートウェイの状態の確認Verify the gateway status

Get-AzureApplicationGateway コマンドレットを入力してゲートウェイの状態を確認します。Enter the Get-AzureApplicationGateway cmdlet to check the status of the gateway. 前の手順で Start-AzureApplicationGateway が成功した場合、StateRunning になり、VirtualIPsDnsNameに有効な値が入ります。If Start-AzureApplicationGateway succeeded in the previous step, the State should be Running, and the VirtualIPs and DnsName should have valid entries.

次のサンプルは、起動に成功し、実行中で、トラフィックを受け取る準備が完了しているアプリケーション ゲートウェイを示しています。This sample shows an application gateway that is up, running, and ready to take traffic:

Get-AzureApplicationGateway AppGwTest
Name          : AppGwTest2
Description   :
VnetName      : testvnet1
Subnets       : {Subnet-1}
InstanceCount : 2
GatewaySize   : Medium
State         : Running
VirtualIPs    : {23.96.22.241}
DnsName       : appgw-4c960426-d1e6-4aae-8670-81fd7a519a43.cloudapp.net

次の手順Next steps

負荷分散のオプション全般の詳細については、次を参照してください。For more information about load-balancing options in general, see: