Ssl

檢測傳入請求是否安全的最佳方法是什麼?

  • April 22, 2015

在 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"
     }
  }
}

如您所見,我們正在使用if {[TCP::local_port] == 443} { ... }它來檢測 SSL,但是將埠硬編碼到規則中感覺很笨拙。有沒有更好的辦法?

也許檢查: SSL::mode, HTTP:uri, 或其他什麼?

您要檢測的是連接是否使用客戶端 SSL 配置文件。PROFILE::exists的 DevCentral 頁面顯示瞭如何執行此操作:

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

奧利弗

引用自:https://serverfault.com/questions/396179