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

Apache: принудительная проверка подлинности сертификата на стороне клиента для интернет-посетителей, без проверки подлинности для localhost

Как я могу позволить Apache принудительно проверять подлинность сертификата на стороне клиента для гостей из Интернета, но не требовать проверки подлинности для локального хоста?

Оба должны использовать https и читать один и тот же каталог, желательно на одном порту.

У меня есть настройка конфигурации сертификата на стороне клиента, которая работает, теперь мне нужно добавить доступ no auth localhost.

У кого-нибудь есть хороший шаблон httpd.conf? Я пробовал использовать http://www.modssl.org/docs/2.8/ssl_howto.html#ToC10 но я не мог заставить это работать (и этот пример тоже не совсем то, что мне нужно.)

Конфигурация ssl полностью отделена от проверки того, какие хосты могут получить доступ к каталогу.

Чтобы потребовать аутентификацию от кого-либо, кроме localhost, вы можете использовать параметр удовлетворения и сделать что-то вроде этого:

Allow from localhost 127.0.0.1
Require valid-user
Satisfy Any

Сказанное выше говорит о том, что пользователь должен либо пройти аутентификацию, либо перейти с локального хоста, чтобы получить доступ к серверу.

Есть достойный пример использования Satisfy Any в официальных документах apache. Он объясняет, где в конфигурации apache разрешено что-то подобное. http://httpd.apache.org/docs/2.0/mod/core.html#satisfy

Обновление на основе комментариев: Почему бы просто не настроить два виртуальных хоста? Один с catch all (*: 443), который выполняет проверку подлинности сертификата клиента, а другой хост (127.0.0.1:443) прослушивает только локальный хост, который выполняет обычный ssl? Вы можете установить корень документа в один и тот же каталог для обоих виртуальных серверов.