Citrix ADC

レスポンダを使用してHTTPリクエストをHTTPSにリダイレクトする方法

この記事では、負荷分散仮想サーバーの IP アドレスを使用してレスポンダー機能を設定し、クライアント要求を HTTP から HTTPS にリダイレクトする方法について説明します。

ユーザーが HTTP リクエストを送信してセキュリティで保護された Web サイトにアクセスしようとするシナリオを考えてみましょう。リクエストを削除する代わりに、リクエストをセキュアな Web サイトにリダイレクトすることもできます。レスポンダ機能を使用すると、ユーザーがアクセスしようとするパスと URL クエリを変更することなく、セキュリティで保護された Web サイトに要求をリダイレクトできます。

Citrix ADC レスポンダーが要求を HTTP から HTTPS にリダイレクトする方法

次の図は、アプライアンスが要求をリダイレクトする方法のステップバイステップフローを示しています。

リクエストをリダイレクトするレスポンダー

:ナビゲーションパスとスクリーンショットはNetScaler 11.0から取得されます。

レスポンダー機能をNetScaler アプライアンスの負荷分散VIPアドレスとともに構成し、クライアント要求をHTTPからHTTPSにリダイレクトするには、次の手順を実行します。

  1. アプライアンスでレスポンダ機能を有効にします。[システム] > [設定] > [高度な機能の構成] > [レスポンダー] に移動します。

    レスポンダーの有効化

  2. レスポンダアクションを作成し、「名前」フィールドに適切な名前(http_to_https_actn など)を指定します。
  3. 応答側アクションを作成するには、ナビゲーションペインで [AppExpert] > [応答側] を展開し、[アクション] をクリックして [追加] をクリックします。
  4. [タイプとしてリダイレクト] を選択します。
  5. [] フィールドに、次の式を入力します。

    "https://" + HTTP.REQ.HOSTNAME.HTTP_URL_SAFE + HTTP.REQ.URL.PATH_AND_QUERY.HTTP_URL_SAFE」を参照してください。

  6. NetScaler バージョン9.0および10.0では、[安全性チェックのバイパス] オプションがクリアされていることを確認します。

    :このオプションは、NetScaler 11.0以降では存在しません。

  7. レスポンダーポリシーを 作成し、[名前] フィールドに http_to_https_pol などの適切な名前を指定します。
  8. レスポンダーポリシーを作成するには、ナビゲーションウィンドウで [AppExpert] > [レスポンダー] を展開し、[ポリシー] をクリックして、[追加] をクリックします。
  9. 「アクション」(Action) リストから、作成したアクション名を選択します。
  10. [未定義のアクション] リストから、[リセット] を選択します。
  11. 次のスクリーンショットに示すように、[] フィールドに HTTP.REQ.IS_VALID 式を入力します。

レスポンダーポリシーの作成

  1. ステータスが常に UP としてマークされるモニタを作成し、「名前」フィールドに適切な名前(localhost_ping など)を指定します。
  2. モニターを作成するには、ナビゲーションウィンドウで [負荷分散] を展開し、[モニター] をクリックし、[追加] をクリックします。
  3. [宛先 IP] フィールドで、次のスクリーンショットに示すように 127.0.0.1 の IP アドレスを指定します。

    モニタの構成

  4. サービスを作成し、「名前」フィールドに適切な名前(Always_UP_service など)を指定します。
  5. サービスを作成するには、ナビゲーションウィンドウで [負荷分散] を展開し、[サービス] をクリックし、[追加] をクリックします。
  6. [Server] フィールドに存在しない IP アドレスを指定します。

    モニタの構成

  7. [ポート] フィールドに 80 を指定します。
  8. 作成したモニターを [使用可能なモニ ター] リストから追加します。
  9. ロード・バランシング仮想サーバーを作成し、 「名前」 フィールドに適切な名前を指定します。
  10. 負荷分散仮想サーバーを作成するには、ナビゲーションウィンドウで、[負荷分散] を展開し、[サービス] をクリックし、[追加] をクリックします。
  11. [IPアドレス]フィールドにWebサイトのIPアドレスを指定します。
  12. [プロトコル] リストから [HTTP] を選択します。
  13. [ポート] フィールドに 80 と入力します。
  14. NetScaler バージョン9.0および10.0では、次のスクリーンショットに示すように、「サービス」タブで作成したサービスの「アクティブ」オプションを選択します。このオプションは、NetScaler バージョン11.0では推奨されません。

    [アクション] オプションを選択します。

  15. [ポリシー] タブをクリックします。
  16. 作成したレスポンダーポリシーを、Web サイトの HTTP 負荷分散 VIP アドレスにバインドします。
  17. Web サイトの IP アドレスと 443 ポートを持つ、セキュアな負荷分散仮想サーバーを作成します。

アプライアンスのコマンドラインインターフェイスから前述の手順と同様の構成を作成するには、次のコマンドを実行します。

enable ns feature responder
add responder action http_to_https_actn redirect ""https://" + http.req.hostname.HTTP_URL_SAFE + http.REQ.URL.PATH_AND_QUERY.HTTP_URL_SAFE"
add responder policy http_to_https_pol HTTP.REQ.IS_VALID http_to_https_actn RESET
add lb monitor localhost_ping PING -LRTM ENABLED -destIP 127.0.0.1
add service Always_UP_service 1.2.3.4 HTTP 80 -gslb NONE -maxClient 0 -maxReq 0 -cip ENABLED dummy -usip NO -sp OFF -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP YES
bind lb monitor localhost_ping Always_UP_service
add lb vserver http_site.com HTTP 10.217.96.238 80 -persistenceType COOKIEINSERT -timeout 0 -cltTimeout 180
bind lb vserver http_site.com Always_UP_service
bind lb vserver http_site.com -policyName http_to_https_pol -priority 1 -gotoPriorityExpression END

注意事項:

  • リダイレクトが機能するには、ポート 80 負荷分散リダイレクト仮想サーバーのステータスが UP である必要があります。
  • HTTPS 仮想サーバーがアクティブでない場合、Web ブラウザーが正しくリダイレクトされないことがあります。
  • このリダイレクト設定により、複数のドメインが同じ IP アドレスにバインドされている状況に対応できます。
  • クライアントが無効なHTTP要求をリダイレクト仮想サーバに送信すると、アプライアンスはRESETメッセージ・コードを送信します。

レスポンダを使用してHTTPリクエストをHTTPSにリダイレクトする方法