我的路由器上有一个TinyProxy代理,它将流量发送到不在LAN上的外部父Squid代理进行处理。我向Squid添加了授权,以便它不会对世界完全开放(如果用户将浏览器指向squid代理,用户必须提供用户名和密码,这可以正常工作)。
查看TinyProxy手册页,我可以看到可以通过tinyproxy向Squid父级发送基本授权头信息,但是当我尝试这样做时,它没有正确验证(没有浏览器配置。这是一个透明代理)我在Squid结束时遇到访问错误。以下是TinyProxy.conf手册页的摘录:
AddHeader "X-My-Header" "Powered by Tinyproxy"
如果Squid上允许的用户使用的用户名为:测试,密码为: test1234 ,密码为hash: 123456789 ,这是我在TinyProxy.conf文件中包含的内容:
AddHeader "Proxy-Authorization" "Basic test:123456789"
当我尝试访问HTTP站点时,它无法正确进行身份验证。格式不正确吗?
另外参考,这是我的squid.conf
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
#http_access allow all
http_port 3128
答案 0 :(得分:0)
我找到了解决问题的方法。添加标题时,它不是“user:password_hash”形式,而是以base64字符串的形式。我只是使用在线转换器(http://www.tuxgraphics.org/toolbox/base64-javascript.html)将“test:test1234”转换为“dGVzdDp0ZXN0MTIzNA ==”。然后,TinyProxy中的AddHeader行变为:
AddHeader "Proxy-Authorization" "Basic dGVzdDp0ZXN0MTIzNA=="
它完美地验证了!我希望除了我以外的其他人觉得这很有用,因为我无法找到一个单独的“TinyProxy”添加标题示例。