web-dev-qa-db-ja.com

着信要求が安全かどうかを検出するための最良の方法は何ですか?

F5ロードバランサーへの着信リクエストでHTTPとHTTPSを検出するための好ましい方法はありますか? iRuleを使用してセキュアと非セキュアを検出し、対応するヘッダーフラグをWebサーバーに渡そうとしています。

これが私たちがこれまでに持っているものです(テストされていません):

when HTTP_REQUEST_SEND {
   clientside {
      if {[TCP::local_port] == 443} {
         HTTP::header replace HTTP_X_FORWARDED_PROTO "https"
      }
      else {
         HTTP::header replace HTTP_X_FORWARDED_PROTO "http"
      }
   }
}

ご覧のとおり、SSLの検出にはif {[TCP::local_port] == 443} { ... }を使用していますが、ルールにハードコードされたポートでは扱いにくいと感じています。もっと良い方法はありますか?

おそらく検査:SSL::modeHTTP:uri、または他の何か?

2
Derek Hunziker

検出したいのは、接続がクライアントSSLプロファイルを使用しているかどうかです。 PROFILE :: exits のDevCentralページは、これを行う方法を示しています。

when CLIENT_ACCEPTED {
   if { [PROFILE::exists clientssl] == 1} {
      log local0. "client SSL profile enabled on virtual server"
   }
}

オリバー

1
eey0re