代理使用 https 删除自定义标头

代理使用 https 删除自定义标头

问题 :

对于 HTTPS 请求,我的代理会从响应中删除自定义标头:

HTTP 请求:

$ curl -I -x 127.0.0.1:5566 http://www.google.fr
HTTP/1.1 200 OK
...
X-Servedby: 50001 => My custom header is added to the response

完整回复:https://gist.github.com/vdaubry/eafabf211957cbe87563

HTTPS 请求:

$ curl -I -x 127.0.0.1:5566 https://www.google.fr
HTTP/1.1 200 Connection established
Proxy-Agent: Privoxy/3.0.23
X-Servedby: 50001 => doesn't appear in the final response

HTTP/1.1 200 OK
Date: Sat, 07 Feb 2015 16:29:25 GMT
...
Vary: Accept-Encoding

完整回复:https://gist.github.com/vdaubry/2869d85b2e8affdc5a8c

我不明白为什么在连接打开时添加了自定义标头,但在最终响应中却没有添加?


更多信息:

我有 HAProxy 负载平衡请求到多个 Privoxy 实例。HAProxy 正在将 privoxy 实例名称添加到自定义标头“X-Servedby”中的响应中(如下所示:如何获取已在前端部分提供请求服务的服务器的名称?

它与 HTTP 请求配合良好,但自定义标头在 HTTPS 请求中会被丢弃

Privoxy 设置为透明代理(accept-intercepted-requests=1)。文档中说

请注意,不支持拦截加密连接(HTTPS)。

不确定这是否与问题有关?

答案1

如果我没看错的话,您已经发现了问题所在。您的真正问题似乎是“使用 HTTPS 时未添加标头” - 对吗?代理负责插入标头?

如果是这种情况,则不拦截 HTTPS 就无法完成此操作,因为除一个标头(主机)之外的所有标头都是加密的。

相关内容