Ssl

在本地網路 apache2 上時不要使用 Client Cert Auth

  • July 4, 2015

我希望有人可以幫助我解決這個問題…

我在我的 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 requireLocation這樣的塊來修改此配置:

<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 指令以及SSLVerifyClientrequireoptional的切換

引用自:https://serverfault.com/questions/701767