【BIG-IP】iRuleにおける「https redirect」の設定と書き方

案件によってよく、クライアントがhttp(80)へアクセスした際、https(443)へリダイレクトをするようにしてほしいという要望があります。

それを負荷分散装置「BIG-IP」でも実施するようなことがあるわけです。
結論を言うと、「可能」です。

以下では、設定の内容と適用までの流れを説明します。

「BIG-IP」iRuleにおける「httpsリダイレクト」の設定方法

この設定はデフォルトでiRule listにありますが、デフォルトのリストをそのまま利用するのはメーカーでも推奨はしていなかったと思います。
ここは新規でiRuleを書きます。

  1. LocalTraffic > iRule > iRule List > 「Create」をクリック
  2. iRule作成画面以下を設定
  3. Name:任意

    以下の設定を書き込みます。

    when HTTP_REQUEST {
           HTTP::redirect https://[getfield [HTTP::host] ":" 1][HTTP::uri]
        }
    
  4. 設定が完了したら、「Finished」をクリック
  5. 最後に対象のVSへiRuleを適用
    LocalTraffic > VirtualServers > 該当のVSを選択 > Resources > iRules > manage… >
    上記で作成したiRuleを適用

iRule[httpsリダイレクト]の動作

このiRuleの動作は、流れとなります。

  1. ユーザーがhttp(80)でアクセス
  2. バーチャルサーバ側で80ポートのVSを用意し、設定されたiRuleが動作
  3. [HTTP::host] でHTTP hostのヘッダーの値を取得
  4. [HTTP::uri] でURLの/index.htmlのようなURLの値を取得
  5. HTTP::redirect 302を実施し、スキームをhttpsへ変更したURLリダイレクトを取得した値と合わせてユーザーへ返信
  6. ユーザーは302リダイレクションにより、https(443)へアクセス
    この時URLの値は、引き継いだままリダイレクトされる

https(443)のVSも作成しておくこと

このリダイレクションの設定はhttpsへのリダイレクトを実行するため、http(80)のVSのほかにhttps(443)のVSも作成しておく必要があるので注意してください。

動作確認も実施しているので上記のiRuleをhttp(80)へ設定することで確認できます。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!