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

Как обойти SSLVerifyClient для определенного IP-адреса

Я новичок в HTTPD, поэтому мне нужны знания профессионалов.

Предыдущие администраторы настраивали HTTPD на Linux. Он настроен для чтения сертификатов пользователем, обращающимся к определенному DNS (например: https://cxg-now-test.abc). Затем используется обратный прокси-сервер для отправки пользователя на сервер приложения, если его сертификат действителен, который находится в том же поле. Это прекрасно работает.

В моей конфигурации HTTPD у меня есть такой раздел:

<VirtualHost>
...
SSLVerifyClient require
SSLVerifyDepth 3
SSLOptions +ExportCertData +StdEnvVars
SSLCACertificateFile <path to cert>
</VirtualHost>

Всякий раз, когда кто-то обращается https://cxg-now-test.abc, их сертификат считывается и отправляется в приложение. Опять же, это отлично работает.

Я бы хотел обойти SSLVerifyClient с определенного DNS или IP-адреса. Пример: 10.54.12.34

Я знаю, что могу установить SSLVerifyClient как «необязательный», но мне это не кажется очень безопасным.

Думаю, окончательным решением будет следующее:

Кстати, мы используем Apache 2.2

Это выполнимо?

Любая помощь приветствуется

Кажется, ответ отрицательный. SSLVerifyClient не включает никаких опций для выбора его настройки, например, с помощью переменных среды.

Однако вы можете установить SSLVerifyClient в контексте виртуального хоста или каталога. Поэтому, если вы настраиваете Apache для обслуживания контента 10.54.12.34 с другого виртуального хоста или каталога, вы можете установить там другое значение SSLVerifyClient. Например, используя mod_rewrite в VirtualHost:

SSLVerifyClient require

RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^10\.54\.12\.34$
RewriteRule ^(.*)$ /path/to/host-specific-dir/$1 [QSA]

<Directory /path/to/host-specific-dir>
  SSLVerifyClient optional
</Directory