レスポンダーを使用して HTTP リクエストを HTTPS にリダイレクトする方法
この記事では、負荷分散仮想サーバーのIPアドレスを使用してレスポンダー機能を構成し、クライアント要求をHTTPからHTTPSにリダイレクトする方法について説明します。
ユーザーが HTTP リクエストを送信して安全な Web サイトにアクセスしようとするシナリオを考えてみましょう。リクエストをドロップする代わりに、リクエストを安全なウェブサイトにリダイレクトしたい場合があります。レスポンダー機能を使用すると、ユーザーがアクセスしようとするパスや URL クエリを変更せずに、リクエストを安全な Web サイトにリダイレクトできます。
NetScalerレスポンダーがリクエストをHTTPからHTTPSにリダイレクトする方法
次の図は、アプライアンスがリクエストをリダイレクトする方法の段階的なフローを示しています。
注:ナビゲーションパスとスクリーンショットはNetScaler 11.0から取得されています。
レスポンダー機能をNetScalerアプライアンスの負荷分散VIPアドレスとともに構成して、クライアント要求をHTTPからHTTPSにリダイレクトするには、次の手順を実行します。
アプライアンスでレスポンダ機能を有効にします。[システム] > [設定] > [拡張機能の設定] > [レスポンダー] に移動します。
- レスポンダーアクションを作成し、名前フィールドに http_to_https_actn などの適切な名前を指定します。
- レスポンダーアクションを作成するには、ナビゲーションペインでAppExpert>Responderを展開し、「アクション」をクリックして「追加」をクリックします。
- タイプとして「リダイレクト」を選択します。
「式」フィールドに、次の式を入力します。
"https://" + HTTP.REQ.HOSTNAME.HTTP_URL_SAFE + HTTP.REQ.URL.PATH_AND_QUERY.HTTP_URL_SAFE
。NetScalerバージョン9.0および10.0では、[セーフティチェックをバイパス]オプションがオフになっていることを確認します。
注:NetScaler 11.0以降では、このオプションは存在しません。
- レスポンダーポリシーを作成し、名前フィールドに http_to_https_pol などの適切な名前を指定します。
- レスポンダーポリシーを作成するには、ナビゲーションペインでAppExpert>Responderを展開し、「ポリシー」をクリックして「追加」をクリックします。
- アクションリストから、作成したアクション名を選択します。
- 「未定義のアクション」リストから、「リセット」を選択します。
- 次のスクリーンショットに示すように、「式」フィールドにHTTP.REQ.IS_VALID式を入力します。
- ステータスが常に UP とマークされているモニターを作成し、名前フィールドに localhost_ping などの適切な名前を指定します。
- モニターを作成するには、ナビゲーション・ペインで「LoadBalancing」を展開し、「Monitors」をクリックし、「Add」をクリックします。
次のスクリーンショットに示すように、「宛先 IP」フィールドに 127.0.0.1 の IP アドレスを指定します。
- サービスを作成し、名前フィールドに Always_up_service などの適切な名前を指定します。
- サービスを作成するには、ナビゲーション・ペインで「LoadBalancing」を展開し、「サービス」をクリックして「追加」をクリックします。
「サーバー」フィールドに、存在しない IP アドレスを指定します。
- ポートフィールドに80 を指定します。
- 作成したモニターを「使用可能なモニター」リストから追加します。
- 負荷分散仮想サーバーを作成し、名前フィールドに適切な名前を指定します。
- 負荷分散仮想サーバーを作成するには、ナビゲーションペインで [負荷分散] を展開し、[サービス] をクリックしてから [追加]をクリックします。
- IP アドレスフィールドに Web サイトの IP アドレスを指定します。
- 「プロトコル」リストから「HTTP」を選択します。
- 「ポート」フィールドに「80」と入力します。
NetScalerバージョン9.0および10.0では、次のスクリーンショットに示すように、[サービス] タブで作成したサービスの [アクティブ] オプションを選択します。このオプションはNetScalerバージョン11.0で廃止されました。
- [ポリシー]タブをクリックします。
- 作成したレスポンダーポリシーをWebサイトのHTTP負荷分散VIPアドレスにバインドします。
- 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メッセージ・コードを送信します。