如何在TinyProxy中正确添加标头以在Squid中进行身份验证

时间:2016-12-28 19:52:41

标签: proxy basic-authentication squid http-basic-authentication

我的路由器上有一个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

1 个答案:

答案 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”添加标题示例。