在最近发现Poodle漏洞之后,我们的团队决定从SSLv3继续。但彻底清除之前,他们要提醒的日常用户,他们的浏览器使用过时的SSLv3。因此,我们想到了
- 从前端SSL卸载检测协议(SSLv3,TLS1等)(我们使用nginx)
- 通过HTTP标头将该信息(SSL协议)传递给Apache后端。
然后,我们的后端代码将处理该标头,并在客户端使用SSLv3时发出警告。
我知道nginx具有功能proxy_set_header
。所以这个简单
proxy_set_header X-HTTPS-Protocol $something;
现在,问题是:很明显nginx知道客户端使用的协议,但是如何通过HTTP头将信息传递给后端呢?
谢谢
正如类似的线程Apache重定向用户所指出的,如果他们使用的是SSLv3,则这种想法可能会变得非常糟糕。
原因是TLS握手发生在通过TLS隧道发送HTTP通信之前。当我们的后端检测到SSL协议时,客户端可能已经在他的第一个请求中发送了私有数据。对于永久和长期的解决方案,我们应考虑禁用SSLv3。