Azure portal を使用して HTTP から HTTPS にリダイレクトするアプリケーション ゲートウェイを作成する

Azure portal で TLS 終端の証明書を使用してアプリケーション ゲートウェイを作成できます。 アプリケーション ゲートウェイで HTTP トラフィックを HTTPS ポートにリダイレクトするために、ルーティング規則が使用されます。 また、この例では、2 つの仮想マシン インスタンスが含まれるアプリケーション ゲートウェイのバックエンド プールのために仮想マシン スケール セットを作成します。

この記事では、次の方法について説明します。

  • 自己署名証明書を作成する
  • ネットワークを設定する
  • 証明書を使用してアプリケーション ゲートウェイを作成する
  • リスナーとリダイレクト規則を追加する
  • 既定のバックエンド プールで仮想マシン スケール セットを作成する

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

注

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

このチュートリアルでは、証明書を作成して IIS をインストールするために、Azure PowerShell モジュール バージョン 1.0.0 以降が必要になります。 バージョンを確認するには、Get-Module -ListAvailable Az を実行します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 このチュートリアルでコマンドを実行するには、Login-AzAccount を実行して Azure との接続を作成することも必要です。

自己署名証明書を作成する

実際の運用では、信頼できるプロバイダーによって署名された有効な証明書をインポートする必要があります。 このチュートリアルでは、New-SelfSignedCertificate を使用して、自己署名証明書を作成します。 Export-PfxCertificate と返されたサムプリントを使用して、pfx ファイルを証明書からエクスポートできます。

New-SelfSignedCertificate `
  -certstorelocation cert:\localmachine\my `
  -dnsname www.contoso.com

次のような結果が表示されます。

PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my

Thumbprint                                Subject
----------                                -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630  CN=www.contoso.com

サムプリントを使用して、pfx ファイルを作成します。

$pwd = ConvertTo-SecureString -String "Azure123456!" -Force -AsPlainText
Export-PfxCertificate `
  -cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
  -FilePath c:\appgwcert.pfx `
  -Password $pwd

アプリケーション ゲートウェイを作成する

作成したリソース間の通信には仮想ネットワークが必要です。 この例では 2 つのサブネットが作成されます。1 つはアプリケーション ゲートウェイ用で、もう 1 つはバックエンド サーバー用です。 仮想ネットワークは、アプリケーション ゲートウェイを作成するときに同時に作成できます。

  1. Azure portal にサインインします。

  2. Azure portal の左上隅にある [リソースの作成] をクリックします。

  3. [ネットワーク] を選択し、注目のリストで [Application Gateway] を選択します。

  4. 次のアプリケーション ゲートウェイの値を入力します。

    • myAppGateway - アプリケーション ゲートウェイの名前です。
    • myResourceGroupAG - 新しいリソース グループの名前です。
  5. 他の設定は既定値をそのまま使用し、[OK] をクリックします。

  6. [仮想ネットワークの選択]、[新規作成] の順にクリックし、次の仮想ネットワークの値を入力します。

    • myVNet - 仮想ネットワークの名前です。
    • 10.0.0.0/16 - 仮想ネットワークのアドレス空間です。
    • myAGSubnet - サブネットの名前です。
    • 10.0.0.0/24 - サブネットのアドレス空間です。
  7. [OK] をクリックして、仮想ネットワークとサブネットを作成します。

  8. [フロントエンド IP 構成] で、[IP アドレスの種類] は [パブリック] であり、[新規作成] が確実に選択されているようにします。 名前として「myAGPublicIPAddress」と入力します。 他の設定は既定値をそのまま使用し、[OK] をクリックします。

  9. [リスナー構成] で、[HTTPS]、[ファイルの選択] の順に選び、c:\appgwcert.pfx ファイルに移動して [開く] を選択します。

  10. 証明書の名前として「appgwcert」と入力し、パスワードとして「Azure123456!」と入力します。

  11. Web アプリケーション ファイアウォールは無効のままにし、[OK] を選択します。

  12. 概要ページで設定を確認し、[OK] を選択して、ネットワーク リソースとアプリケーション ゲートウェイを作成します。 アプリケーション ゲートウェイの作成には数分かかる場合があります。デプロイが正常に終了するのを待ち、その後で次のセクションに進みます。

サブネットを追加する

  1. 左側のメニューで [すべてのリソース] を選択し、リソースの一覧で [myVNet] を選びます。
  2. [サブネット] を選択してから、[サブネット] をクリックします。
  3. サブネットの名前として「myBackendSubnet」と入力します。
  4. アドレス範囲として「10.0.2.0/24」と入力してから、[OK] を選択します。

リスナーとリダイレクト規則を追加する

リスナーを追加する

最初に、ポート 80 用に myListener という名前のリスナーを追加します。

  1. myResourceGroupAG リソース グループを開き、[myAppGateway] を選択します。
  2. [リスナー]、[+ Basic]\(+ 基本\) の順に選択します。
  3. 名前として「MyListener」と入力します。
  4. 新しいフロントエンド ポート名については「httpPort」、ポートは「80」と入力します。
  5. プロトコルが確実に [HTTP] に設定されている場合は、[OK] を選択します。

リダイレクト構成と共にルーティング規則を追加する

  1. [myAppGateway] で、[規則]、[+Request routing rule]\(+基本ルーティング規則\) の順に選択します。
  2. [規則名] には、「Rule2」と入力します。
  3. リスナーに対して [MyListener] が確実に選択されているようにします。
  4. [Backend targets]\(バックエンド ターゲット\) タブをクリックし、[ターゲットの種類] は [リダイレクト] を選択します。
  5. [リダイレクトの種類] では、[永続] を選択します。
  6. [リダイレクト ターゲット] では、[リスナー] を選択します。
  7. [対象リスナー] が [appGatewayHttpListener] に確実に設定されているようにします。
  8. [クエリ文字列を含める] と [パスを含める] は [はい] を選択します。
  9. [追加]を選択します。

注

appGatewayHttpListener は既定のリスナー名です。 詳細については、「Application Gateway のリスナーの構成」を参照してください。

仮想マシン スケール セットを作成する

この例では、アプリケーション ゲートウェイのバックエンド プールにサーバーを提供する仮想マシン スケール セットを作成します。

  1. ポータルの左上隅にある [+リソースの作成] を選択します。
  2. [コンピューティング] を選択します。
  3. 検索ボックスに、「スケール セット」と入力し、Enter キーを押します。
  4. [仮想マシン スケール セット]、[作成] の順に選択します。
  5. [仮想マシン スケール セットの名前] に、「myvmss」と入力します。
  6. [オペレーティング システムのディスク イメージ] で、[Windows Server 2016 Datacenter] が選択されていることを確認します。
  7. [リソース グループ] では、[myResourceGroupAG] を選択します。
  8. [ユーザー名] では、「azureuser」と入力します。
  9. パスワードには「Azure123456!」と入力し、パスワードを確認入力します。
  10. [インスタンス数] では、値が確実に 2 であるようにします。
  11. [インスタンス サイズ] では、[D2s_v3] を選択します。
  12. [ネットワーク] で、[負荷分散オプションの選択] が [Application Gateway] に確実に設定されているようにします。
  13. [Application Gateway] が確実に [myAppGateway] に設定されているようにします。
  14. [サブネット] が [myBackendSubnet] に確実に設定されているようにします。
  15. [作成] を選択します。

スケール セットを適切なバックエンド プールに関連付ける

仮想マシン スケール セットのポータル UI でスケール セット用の新しいバックエンド プールが作成されますが、それを既存の appGatewayBackendPool に関連付ける必要があります。

  1. myResourceGroupAg リソース グループを開きます。
  2. [myAppGateway] を選択します。
  3. [バックエンド プール] を選択します。
  4. [myAppGatewaymyvmss] を選択します。
  5. [Remove all targets from backend pool]\(バックエンド プールからすべてのターゲットを削除\) を選択します。
  6. [保存] を選択します。
  7. このプロセスが完了したら、[myAppGatewaymyvmss] バックエンド プール、[削除]、[OK] の順に選択して確定します。
  8. [appGatewayBackendPool] を選択します。
  9. [ターゲット] で、[VMSS] を選択します。
  10. [VMSS] で、[myvmss] を選択します。
  11. [ネットワーク インターフェイスの構成] で、[myvmssNic] を選択します。
  12. [保存] を選択します。

スケール セットをアップグレードする

最後に、これらの変更でスケール セットをアップグレードする必要があります。

  1. [myvmss] スケール セットを選択します。
  2. [設定] で、[インスタンス] を選択します。
  3. 両方のインスタンスを選択し、[アップグレード] を選びます。
  4. [はい] を選択して確定します。
  5. これが完了したら、myAppGateway に戻り、[バックエンド プール] を選択します。 これで、appGatewayBackendPool のターゲットは 2 個になり、myAppGatewaymyvmss のターゲットは 0 個になるはずです。
  6. [myAppGatewaymyvmss]、[削除] の順に選択します。
  7. [OK] を選択して確定します。

IIS をインストールする

スケール セットに IIS をインストールする簡単な方法は、PowerShell を使用することです。 ポータルで Cloud Shell アイコンをクリックし、確実に [PowerShell] が選択されているようにします。

次のコードを PowerShell ウィンドウに貼り付け、Enter キーを押します。

$publicSettings = @{ "fileUris" = (,"https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/appgatewayurl.ps1"); 
  "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File appgatewayurl.ps1" }
$vmss = Get-AzVmss -ResourceGroupName myResourceGroupAG -VMScaleSetName myvmss
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
  -Name "customScript" `
  -Publisher "Microsoft.Compute" `
  -Type "CustomScriptExtension" `
  -TypeHandlerVersion 1.8 `
  -Setting $publicSettings
Update-AzVmss `
  -ResourceGroupName myResourceGroupAG `
  -Name myvmss `
  -VirtualMachineScaleSet $vmss

スケール セットをアップグレードする

IIS でインスタンスを変更した後、この変更でスケール セットをもう一度アップグレードする必要があります。

  1. [myvmss] スケール セットを選択します。
  2. [設定] で、[インスタンス] を選択します。
  3. 両方のインスタンスを選択し、[アップグレード] を選びます。
  4. [はい] を選択して確定します。

アプリケーション ゲートウェイをテストする

アプリケーションのパブリック IP アドレスは、アプリケーション ゲートウェイの [概要] ページから取得できます。

  1. [myAppGateway] を選択します。

  2. [概要] ページで、[フロントエンド パブリック IP アドレス] の IP アドレスを書き留めます。

  3. そのパブリック IP アドレスをコピーし、ブラウザーのアドレス バーに貼り付けます。 たとえば、http://52.170.203.149 のように指定します。

    セキュリティに関する警告

  4. 自己署名証明書を使用した場合、セキュリティ警告を受け入れるには、そのまま [詳細] を選択し [Web ページへ移動] を選択します。 セキュリティで保護された IIS Web サイトは、次の例のように表示されます。

    アプリケーション ゲートウェイでベース URL をテストする

次のステップ

内部リダイレクトを行うアプリケーション ゲートウェイを作成する方法を学習します。