Назад | Перейти на главную страницу

Не используйте Client Cert Auth в локальной сети apache2

Я надеюсь, что кто-нибудь поможет мне с этим вопросом ...

Я использую сервер Apache 2.4.7 на своем компьютере с Ubuntu 14.04 с некоторыми общедоступными сайтами. Для некоторых из этих сайтов я реализовал аутентификацию клиентского сертификата с использованием самоподписанных сертификатов. Я пытаюсь изменить свою конфигурацию таким образом, чтобы, когда клиент подключается к сайту, находясь в той же сети, что и сервер, полностью обходить аутентификацию.

Вот фрагмент моего файла конфигурации:

    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>

К сожалению, это не сработало, и мне все равно будет предложено ввести сертификат, или мой сайт будет бесплатно доступен в Интернете.

Спасибо большое за помощь

Я нашел здесь ответ: Разрешение входа пользователей с 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>

Основными изменениями здесь являются директивы mod_rewrite в разделе Location и переключатель SSLVerifyClient из требовать к по желанию