在本地网络 apache2 上不要使用客户端证书认证

在本地网络 apache2 上不要使用客户端证书认证

我希望有人能帮助我解决这个问题......

我在 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>

不幸的是,这并没有起作用,我仍然会被提示输入证书,或者我的网站将可从互联网上免费访问。

非常感谢您的帮助

答案1

我在这里找到了答案:允许来自 IP 地址且无需证书客户端身份验证的用户访问

答案概要如下:

<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 指令和SSL验证客户端要求选修的

相关内容