Azure Front Doorのルート構成を使ったHTTPS終端やリダイレクト設定手順

2020-04-26Azure,Front Door

Azure Front Doorのルート構成を使った、HTTPSの終端やHTTPSへのリダイレクト設定手順です。
Azure Front Doorのルート構成を利用することで、HTTPアクセスをHTTPSにリダイレクトしたり、HTTPS通信を終端して配信元(バックエンド)への転送をHTTPに変更することができます。リダイレクトや転送プロトコルの設定を組み合わせた場合に、アクセス時の挙動がどう変わるのかを確認しています。

※確認には、Azure Front Door Standardを利用しています。

スポンサーリンク

Azure Front Doorのルート構成を使ったHTTPリダイレクト設定手順

Azure Front Doorの概要からリソース作成手順

Azure Front Doorの概要やリソース作成手順については、こちらで紹介しています。

検証構成

今回は、以下の構成で検証を行っています。
Windowsの仮想マシン(Azure VM)上でIISを起動し、Webサーバーとして利用しています。
WebサーバーはHTTPのみを受信しています。

※配信元にはLoad BalancerのパブリックIPを指定しています。

ルール構成にHTTPの設定がある

Azure Front Doorのルールには、受信したHTTPに関する設定があります。

要求とルート構成のマッチング方法

HTTPについては、次の3つの設定があります。

    • 受け入れ済みプロトコル: アクセスを許可するプロトコルの設定
    • リダイレクト: HTTPアクセスをHTTPSにリダイレクトするかどうかの設定
    • 転送プロトコル: 配信元(バックエンド)へ転送する際のプロトコルの設定
ルート構成の設定確認
左側のメニューでフロントドアマネージャーを選択します。
次に、ルートを選択します。
Azure Front Doorのフロントドアマネージャー
ルートの設定画面です。
受け入れ済みプロトコル、リダイレクト、転送プロトコルの設定を確認できます。
受け入れ済みプロトコルでは、HTTP、HTTPS、または両方を選択できます。
Azure Front Doorのルール設定
Azure Front Doorの受け入れ済みプロトコル

デフォルト設定のままでアクセス時の挙動を確認

デフォルトでは、以下の設定になっています。

    • 受け入れ済みプロトコル: HTTPとHTTPS
    • リダイレクト: チェックあり(HTTPをHTTPSにリダイレクト)
    • 転送プロトコル: 受信した要求を一致させる

この設定の場合、以下の挙動になります。

    • HTTPアクセスはHTTPSにリダイレクトされる
    • 配信元(バックエンド)には、すべてHTTPSプロトコルで転送される

HTTPSにリダイレクトされるため、配信元(バックエンド)へはすべてHTTPSで転送されます。
バックエンドのWebサーバーがHTTPしか受信できない状態の場合、通信エラーとなります。

アクセス確認
HTTP、HTTPSどちらでアクセスした場合もエラーとなります。

リダイレクト設定のチェックを外してアクセス挙動を確認

リダイレクト設定のチェックを外して確認します。

    • 受け入れ済みプロトコル: HTTPとHTTPS
    • リダイレクト: チェックなし
    • 転送プロトコル: 受信した要求を一致させる

この設定の場合、以下の挙動になります。

    • HTTPアクセスはHTTPSにリダイレクトされない
    • HTTPでアクセスがあった場合はHTTPで配信元(バックエンド)に転送される
    • HTTPSでアクセスがあった場合はHTTPSで配信元(バックエンド)に転送される

配信元への転送がHTTPSにリダイレクトされることはありません。
したがって、配信元がHTTPでのみ応答できる場合は、HTTPアクセス時のみ正常に応答できます。

アクセス確認
リダイレクトのチェックを外して設定を更新します。
HTTPアクセス時のみ、配信元(バックエンド)のコンテンツが表示されます。
HTTPSへのリダイレクトが行われないため、保護されていない通信(HTTP)となります。
【HTTPSアクセス時】

【HTTPアクセス時】

リダイレクトのチェックを外した状態で転送プロトコルをHTTPに変更

リダイレクト設定のチェックを外した状態で、転送プロトコルをHTTPに変更します。

    • 受け入れ済みプロトコル:HTTPとHTTPS
    • リダイレクト:チェックなし
    • 転送プロトコル:HTTP

この設定の場合、以下の挙動になります。

    • HTTPアクセスはHTTPSにリダイレクトされない
    • HTTPSアクセス、HTTPアクセスのいずれの場合も、配信元(バックエンド)へはHTTPで転送される

配信元への転送は常にHTTPで行われます。
そのため、HTTPS、HTTPどちらで受信した場合も応答できる状態になります。

アクセス確認
リダイレクトのチェックは外したままにします。
転送プロトコルを"HTTPのみ"として設定を更新します。
Azure Front Doorのリダイレクト設定

HTTP、HTTPSアクセス時ともに、配信元(バックエンド)のコンテンツが表示されます。
HTTPSへのリダイレクトが行われないため、HTTPでアクセスした場合は保護されていない通信(HTTP)となります。

リダイレクトのチェックを入れた状態で転送プロトコルをHTTPとする

転送プロトコルをHTTPにした状態で、リダイレクト設定のチェックを入れます。

    • 受け入れ済みプロトコル: HTTPとHTTPS
    • リダイレクト: チェックあり (HTTPをHTTPSにリダイレクト)
    • 転送プロトコル:HTTP

この設定の場合、以下の挙動になります。

    • HTTPアクセスはHTTPSにリダイレクトされる
    • HTTPSアクセス・HTTPアクセスのいずれの場合も、配信元(バックエンド)へはHTTPで転送される

配信元への転送は常にHTTPで行われます。
そのため、HTTPS、HTTPどちらで受信した場合も応答できる状態になります。
HTTPアクセスはHTTPSへリダイレクトされ、すべてのアクセスをHTTPS化できます。

アクセス確認
リダイレクト設定のチェックを入れます。
転送プロトコルは"HTTPのみ"のままで設定を更新します。
Azure Front Doorのリダイレクト設定と転送プロトコル
HTTP、HTTPSアクセス時ともに配信元(バックエンド)のコンテンツが表示されます。
HTTPSへのリダイレクトが行われるため、HTTPでアクセスした場合でもHTTPSで通信できる状態となります。

—広告—

最後に

Azure Front DoorでHTTPSを終端し、配信元(バックエンド)にHTTPで転送する場合は、以下の挙動となります。
Azure Front DoorでHTTPSを終端する場合は、リダイレクト設定にチェックを入れ、転送プロトコルをHTTPのみにすれば良さそうです。

設定 HTTPS HTTP
リダイレクト:チェックあり
転送プロトコル:受信した要求を一致させる
× ×
リダイレクト:チェックなし
転送プロトコル:受信した要求を一致させる
× 〇(HTTP)
リダイレクト:チェックなし
転送プロトコル:HTTPのみ
〇(HTTPS) 〇(HTTP)
リダイレクト:チェックあり
転送プロトコル:HTTPのみ
〇(HTTPS) 〇(HTTPS)

HTTPからHTTPSへのリダイレクトは、Azure Front Doorのルールエンジンを使っても設定できます。
設定手順については、こちらで紹介しています。

Azure Front Doorの配信元(バックエンド)の正常性確認については、こちらで紹介しています。

スポンサーリンク