是否有一个首选的方法来检测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::mode , HTTP:uri ,还是别的?
您要检测的是连接是否使用客户端SSLconfiguration文件。 PROFILE :: exists的DevCentral页面显示了如何执行此操作:
when CLIENT_ACCEPTED { if { [PROFILE::exists clientssl] == 1} { log local0. "client SSL profile enabled on virtual server" } }
奥利弗