Apache-2.2
允許使用者從沒有證書客戶端身份驗證的 IP 地址進入
我需要允許在沒有來自辦公室網路的 SSL 證書和外部的 SSL 證書的情況下訪問我的站點。
這是我的配置:
<Directory /srv/www> AllowOverride All Order deny,allow Deny from all # office network static IP Allow from xxx.xxx.xxx.xxx SSLVerifyClient require SSLOptions +FakeBasicAuth AuthName "My secure area" AuthType Basic AuthUserFile /etc/httpd/ssl/index Require valid-user Satisfy Any </Directory>
當我在網路內並擁有證書時 - 我可以訪問。當我在網路內並且沒有證書時 - 我無法訪問,它需要證書。
當我在網路外並且有證書時 - 我無法訪問,它會顯示基本登錄螢幕 當我在網路外並且沒有證書 - 我無法訪問時,它會顯示基本登錄螢幕
並且以下配置完美執行
<Directory /srv/www> AllowOverride All Order deny,allow Deny from all Allow from xxx.xxx.xxx.xxx AuthUserFile /srv/www/htpasswd AuthName "Restricted Access" AuthType Basic Require valid-user Satisfy Any </Directory>
以下是我的實現方式(xxx.xxx.xxx.xxx - 允許在沒有證書的情況下訪問此地址):
SSLVerifyClient optional SSLOptions -FakeBasicAuth +StrictRequire -StdEnvVars -ExportCertData SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128 RewriteEngine on RewriteCond %{SSL:SSL_CLIENT_VERIFY} !^SUCCESS$ RewriteCond %{REMOTE_ADDR} !^xxx.xxx.xxx.xxx$ RewriteRule ^ - [F]
請注意, SSLVerifyClient 不應在目錄上下文中:
在每個目錄上下文中,它在讀取 HTTP 請求之後但在發送 HTTP 響應之前強制使用重新配置的客戶端驗證級別進行 SSL 重新協商。