proxy - 如何在TinyProxy中正确添加 header 以在Squid中进行身份验证

标签 proxy squid basic-authentication

我的路由器上有一个 TinyProxy 代理,它将流量发送到不在 LAN 上的外部父 Squid 代理进行处理。我向 Squid 添加了授权,使其不完全向世界开放(如果用户将浏览器指向 Squid 代理,则必须提供用户名和密码,该代理可以正常工作)。

查看 TinyProxy 手册页,我可以看到可以通过 tinyproxy 向 Squid 父级发送基本授权 header 信息,但是当我尝试这样做时,它无法正确进行身份验证(没有浏览器配置。这是一个透明代理)并且我在 Squid 端收到访问错误。以下是 TinyProxy.conf 手册页的摘录:

AddHeader "X-My-Header" "Powered by Tinyproxy"

如果 Squid 上允许的用户的用户名是:test,密码是:test1234,密码哈希值是: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

最佳答案

我找到了解决问题的方法。添加 header 时,它不是采用“user:password_hash”的形式,而是采用 base64 字符串的形式。我刚刚使用在线转换器(http://www.tuxgraphics.org/toolbox/base64-javascript.html)将“test:test1234”转换为“dGVzdDp0ZXN0MTIzNA==”。 TinyProxy 中的 AddHeader 行将变为:

AddHeader "Proxy-Authorization" "Basic dGVzdDp0ZXN0MTIzNA=="

并且它的身份验证完美!我希望除了我之外的其他人发现这很有用,因为我找不到单个“TinyProxy”添加 header 的示例。

关于proxy - 如何在TinyProxy中正确添加 header 以在Squid中进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41368817/

相关文章:

java - Spring Security HTTP 基本认证

proxy - Nginx proxy_pass 到受密码保护的上游

proxy - 如何从 Twisted 中的 XML-RPC 回调发送 XML-RPC 请求

java - 通过代理java创建套接字

apache - 如何为Meteor/SockJS和WebSocket设置一个Apache代理?

javascript - DOM 对象 document.cookie 属性是如何构建的?

ios - Xcode Charles(HTTP 代理)不捕获本地主机流量

ssl - 如何正确代理 https 流量?

ssl - Squid、HTTPS 页面间歇和 Windows 8/IE11

symfony - 如何在 Symfony 中配置 http_basic 防火墙以在响应正文中返回 JSON?