Ssl
檢測傳入請求是否安全的最佳方法是什麼?
在 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" } }
奧利弗