在Poodle漏洞最近暴露之后,我们的团队决定从SSLv3开始。 但在完全删除之前,他们希望警告 日常用户 ,他们的浏览器使用不推荐SSLv3。 所以,我们想出了这个想法
然后,我们的后端代码将处理该标题,并在客户端使用SSLv3时发出警告。
我知道nginx具有proxy_set_header
function。 所以这个会很简单
proxy_set_header X-HTTPS-Protocol $something;
现在,问题是:显然nginx知道客户端使用的协议,但我怎么能通过HTTP头传递信息到后端?
谢谢
正如类似的线程Apacheredirect用户指出, 如果他们正在使用SSLv3 ,这个想法可能会变得非常非常糟糕的主意。
原因是TLS握手发生在通过TLS隧道发送HTTPstream量之前。 当我们的后端检测到SSL协议时,客户端可能在他的第一个请求中发送了私有数据。 对于永久和长期的解决scheme,我们应该考虑禁用SSLv3。
Nginx使用了许多可以在configuration中使用的variables。 这个页面提供了variables的完整列表。 在HTTPS请求中保存协议的variables是ssl_protocol
$ ssl_protocol
返回build立的SSL连接的协议;
所以你的proxy_set_headerconfiguration是
proxy_set_header X-HTTPS-Protocol $ssl_protocol
另一个参考: 在这里