使用身份验证设置 Apache 代理

Posted

技术标签:

【中文标题】使用身份验证设置 Apache 代理【英文标题】:Setting up an Apache Proxy with Authentication 【发布时间】:2010-10-17 23:57:43 【问题描述】:

我需要设置一个带有身份验证的代理来验证连接到互联网的应用程序的行为。

我正在尝试设置带有转发代理和身份验证的 Apache 安装,尽管我已经接近让它工作,但我想知道是否有更好的方法,因为配置相当深奥。

如何将 Apache 配置为以这种方式工作?

是否还有其他已配置好的选项?也许是一些 VM 或其他软件工具,而不是 Apache?

【问题讨论】:

【参考方案1】:

作为记录,这是我设置 apache 以用作具有基本身份验证的转发代理的方式:

打开 http.conf

取消注释以下 LoadModule 指令以启用代理功能

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

将以下指令添加到 http.conf 以启用身份验证

ProxyRequests On
ProxyVia On

<Proxy *>
    Order deny,allow
    Allow from all
    AuthType Basic
    AuthName "Password Required"
    AuthUserFile password.file
    AuthGroupFile group.file
    Require group usergroup
</Proxy>

使用 htpasswd.exe 实用程序创建一个 password.file。放在Apache根目录

htpasswd.exe -c password.file username

使用与password.file同级的文本编辑器创建一个group.file,内容如下

usergroup: username

然后运行apachectl restart 以获取配置更改。

【讨论】:

“Apache 根目录”在哪里?我正在代理位于其他地方的另一个站点...所以没有主目录..您是指 Apache 可执行文件的文件夹吗?? 如果您希望多个用户在同一个组中,您如何操作 group.file 来做到这一点?逗号分隔列表?空间分隔?还有什么? 请注意,如果您使用的是 Ubuntu,您可以通过以下命令安装 htpasswd 二进制文件:sudo apt-get install apache2-utils mod_access_compat 提供的 Allow、Deny 和 Order 指令已被弃用,并将在未来的版本中消失。你应该避免使用它们。【参考方案2】:

我使用Squid。

安装它并使用配置文件中的“auth_param”指令使用基本身份验证设置它非常容易。

您会在 Squid 网站上找到一些 samples、understand how it works 和 all details about the auth_param

【讨论】:

以上是关于使用身份验证设置 Apache 代理的主要内容,如果未能解决你的问题,请参考以下文章

具有身份验证的 Apache HttpClient Socks5 代理

具有基本身份验证的 Apache 反向代理

Apache HttpClient 4.3.1 中使用 HTTP 隧道/HTTPS 连接的抢先式代理身份验证

如何使用基本身份验证保护在 Apache2 虚拟主机中反向代理的 Tomcat webapp?

具有基本身份验证的 Apache 和 Tomcat 反向代理:Tomcat 可以接收用户名吗?

如何使用 netsh 设置 SQUID 代理身份验证?