Apache ProxyRemote 凭据与 proxy-chain-auth 的选择
在固定父代理账号与有意转发客户端代理凭据之间做选择。
客户端可以用一个账号向 Apache 正向代理完成认证,而 Apache 用另一个账号向父代理完成认证:
client ── client account ── Apache ── parent account ── parent proxy
在 httpd 2.4.59 或更高版本中,要为父代理使用固定账号,ProxyRemote 接受第三个参数:
ProxyRemote "*" "http://parent.example:3128" "parent-user:replace_with_private_password"
这是对现有受访问控制的正向代理配置的补充,例如一个同时要求 客户端 IP 和代理登录 的私有监听器。该账号属于所选的父代理。请保护包含它的配置,并选择部署所需的匹配范围。
Apache 会预先发送这些 Basic 凭据,而不是先等待质询。因此父连接所使用的传输方式和账号策略很重要;网站之后的 HTTPS 会话本身并不保护通往父代理的明文 HTTP 跳转。
何时应继续沿用同一个入站账号
通常 Apache 会消耗发给它自己的代理认证。而 proxy-chain-auth 环境设置则允许把客户端的代理凭据转发给下一个代理:
SetEnv proxy-chain-auth On
这只适用于有意共享的认证链。它会把入站账号材料继续传递下去,而不会另外编造一套父代理用户名和密码。
使用 ProxyRemote 的显式凭据参数时,proxy-chain-auth 不起作用。应当有意识地选择凭据来源,而不是把两项设置叠在一起、寄望于选中那个能用的密码。
这些机制认证的是代理跳转。目标网站的 Authorization 头仍然是另一套交换。