Set*_*eUp 2 apache authentication https redirect mod-ssl
如果浏览器没有提供有效的客户端证书,我想知道是否有办法从网页重定向浏览器。
例如:
我网站上的这一部分需要相互 SSL 身份验证:
subdomain.domain.com
Run Code Online (Sandbox Code Playgroud)
这是我网站的主要部分,它是公开的:
domain.com
Run Code Online (Sandbox Code Playgroud)
用于身份验证的客户端证书由我自己的 CA 颁发,自签名。服务器证书相同。“已知”客户也将我的 CA 添加到他们信任的 CA 存储中。
如果有一个没有有效客户端证书的第三方客户端访问 subdomain.domain.com,它将被重定向到 domain.com
我正在考虑 VHOSTs 区域的一些配置。我玩过
RewriteCond %{SSL:SSL_CLIENT_VERIFY} !=SUCCESS
Run Code Online (Sandbox Code Playgroud)
或与
SSLVerifyClient optional / required / optional_no_ca
Run Code Online (Sandbox Code Playgroud)
但它似乎并没有像我想要的那样工作。
并且以某种方式理解了它在说什么,但我不确定是否没有其他方法可以解决它,或者它可能同时被修复(不仅仅是文档)
谢谢你。
小智 5
我认为你在正确的轨道上。当有一个有效的客户端证书提交给服务器时,Apache 的 mod_ssl 将设置一些 Apache 环境变量。如果 SSL_CLIENT_S_DN_CN Apache 环境变量为空,则以下配置块应重定向。
<Location /path/to/protect/>
SSLVerifyClient optional
SSLVerifyDepth 1
SSLOptions +StdEnvVars
RewriteEngine on
RewriteCond %{SSL:SSL_CLIENT_S_DN_CN} =""
RewriteRule (.*) http://domain.com
</Location>
Run Code Online (Sandbox Code Playgroud)
如果客户端证书未随请求提供,则 SSL_CLIENT_S_DN_CN 将为空并用作重写标准。
希望这可以帮助。
归档时间: |
|
查看次数: |
3832 次 |
最近记录: |