还没有弄清楚如何轻松管理对我的 SSL 网站的访问。
我正在尝试根据客户端 IP 允许访问特定位置。
如果客户端 IP = 192.168.xx => 绕过客户端证书认证 如果客户端 IP !=192.168.xx => 请求客户端证书认证。
我尝试了几种方法(URL 重写、Vhost、允许、拒绝、满足……),但没有成功……
我的 SSL 客户端验证工作正常,我只是被这个基本的“if”请求困住了。我运行的是 Apache 2.12。
我已经尝试实现http://httpd.apache.org/docs/2.0/ssl/ssl_howto.html(部分如何要求来自 Internet 的客户端使用强密码的 HTTPS 和基本身份验证或客户端证书来访问 Intranet 网站上的子区域,但仍允许 Intranet 上的客户端使用普通 HTTP 访问?)但它不起作用..
相当令人沮丧,因为这正是我所寻找的;)(除了 authtype basic)
谢谢
<Location /folder>
SSLVerifyClient require
SSLOptions +StrictRequire
SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
Satisfy Any
Order deny,allow
Deny from all
Allow from 192.168.x.x
</Location>
答案1
如果你想强制网络,只需使用这样的正则表达式:
<If "%{REMOTE_ADDR} !~ /^regex$ SSLVerifyClient require SSLVerifyDepth 2 </If>
答案2
好吧,看起来在 Apache <2.3 上不可能做到这一点
我已经更新到 Apache 2.4 并且刚刚添加了“if”指令:
<If "%{REMOTE_ADDR} == 'xx.xx.xx.xx">
SSLVerifyClient require
SSLOptions +StrictRequire
SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
</If>