检测传入请求是否安全的最佳方法是什么?

是否有一个首选的方法来检测HTTP到HTTPS的传入请求到F5负载平衡器? 我们正在尝试使用iRule检测安全与不安全,并将相应的标头标志传递给我的Web服务器。

这是我们迄今为止(未经testing):

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::modeHTTP:uri ,还是别的?

您要检测的是连接是否使用客户端SSLconfiguration文件。 PROFILE :: exists的DevCentral页面显示了如何执行此操作:

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

奥利弗