Ssl
在本地網路 apache2 上時不要使用 Client Cert Auth
我希望有人可以幫助我解決這個問題…
我在我的 Ubuntu 14.04 機器上執行 Apache 2.4.7 伺服器,其中包含一些面向公眾的站點。對於其中一些站點,我使用自簽名證書實現了客戶端證書身份驗證。我正在嘗試更改我的配置,以便當客戶端連接到與伺服器位於同一網路的站點時,完全繞過身份驗證。
這是我的配置文件的片段:
SSLEngine On SSLProtocol -all +TLSv1 +SSLv3 SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM SSLCertificateFile /etc/ssl/ca/certs/server.crt SSLCertificateKeyFile /etc/ssl/ca/private/server.key SSLCACertificateFile /etc/ssl/ca/certs/serverCA.crt SSLVerifyClient require SSLProxyEngine Off ProxyRequests Off
我嘗試通過移動
SSLVerifyClient require
到Location
這樣的塊來修改此配置:<Location /> Order deny,allow Deny from all Allow from 192.168.1.0/24 SSLVerifyClient require Satisfy any </Location>
不幸的是,這不起作用,我仍然會被提示輸入證書,或者我的網站可以從網際網路上免費獲得。
非常感謝您的幫助
我在這裡找到了答案:Allowing users in from an IP address without certificate client authentication
答案的要點如下:
<VirtualHost *:443> SSLEngine On SSLProtocol -all +TLSv1 +SSLv3 SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM SSLCertificateFile /etc/ssl/ca/certs/server.crt SSLCertificateKeyFile /etc/ssl/ca/private/server.key SSLCACertificateFile /etc/ssl/ca/certs/serverCA.crt SSLVerifyClient optional SSLProxyEngine Off ProxyRequests Off <Location /> Order deny,allow Deny from all Satisfy any Allow from 192.168.1.0/24 RewriteEngine on RewriteCond %{SSL:SSL_CLIENT_VERIFY} !^SUCCESS$ RewriteCond %{REMOTE_ADDR} !^192.168.1.[0-9]*$ RewriteRule ^ - [F] <Location /> </VirtualHost>
這裡的主要變化是 Location 部分中的 mod_rewrite 指令以及SSLVerifyClient從require到optional的切換