我正在尝试对已向其颁发证书的特定用户进行身份验证,以便使用上述证书对我的 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 示例中所示,它确实有效。但我无法解决我的代理问题。