Apache 正向代理的 SSL 客户端身份验证

Apache 正向代理的 SSL 客户端身份验证

我正在尝试对已向其颁发证书的特定用户进行身份验证,以便使用上述证书对我的 Web 代理进行身份验证。我想我已经尝试了以下选项的近 20 种组合,但似乎没有一种对我有用。在 apache 文档页面中,所有用于 ssl 客户端身份验证的示例通常都基于<Location>指令。我的情况从未被提及,此时我想知道是否有可能:

<VirtualHost *:8080>

ProxyRequests On
SSLCACertificateFile /etc/apache2/myca/ca.cer

<Proxy "*">
    SSLVerifyClient Require
    SSLVerifyDepth 10
    SSLOptions  +FakeBasicAuth +StrictRequire
    SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/   \
        and %{SSL_CLIENT_S_DN_O} eq "MyComp"       \
        and %{SSL_CLIENT_S_DN_OU} eq "IT"           \
        and %{SSL_CLIENT_S_DN_Email} eq "[email protected]")
</Proxy>

ErrorLog ${APACHE_LOG_DIR}/proxy_error.log
CustomLog ${APACHE_LOG_DIR}/proxy_access.log combined
</VirtualHost>

通过上述配置,代理可以工作但不需要身份验证,每个人都可以使用它。

  • 我尝试过将其放在指令SSLVerifyClient Require之外Proxy,但没有任何变化
  • 我删除了SSLRequire,但没什么变化
  • 我删除了SSLOptions,但没什么变化
  • Require ssl-verify-client我在指令中添加了Proxy,但出现 403 错误。将证书添加到浏览器中不会改变任何内容。

我尝试在一个简单的指令中进行了类似的配置,<Location />如 apache 示例中所示,它确实有效。但我无法解决我的代理问题。

相关内容