Apache - клиентские сертификаты - PullRequest
0 голосов
/ 22 января 2019

Цель процесса сертификации клиента - просто доказать, что CA, который вы имеете в SSLCACertificateFile (в файле conf), поручился за клиента?Если ЦС является хорошо известным ЦС, то любой, кто имеет свой публичный сертификат, подписанный этим ЦС, может пройти через него как действительный клиент?Немного запутался во всей этой аутентификации клиента.

1 Ответ

0 голосов
/ 22 января 2019

Да, но:

  1. Например, в частной установке вы также можете использовать частный внутренний ЦС, чтобы вы могли контролировать, кто получает сертификаты или нет.
  2. Посмотрите на директиву SSLOptions , в некоторых случаях может помочь FakeBasicAuth
  3. И вообще, у вас есть директива SSLRequire , где вы можете ограничить доступ на основе любого компонента представленного сертификата, например его CN.

Пример приведен в документации:

SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)-/                   \
            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd."          \
            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"}    \
            and %{TIME_WDAY} -ge 1 and %{TIME_WDAY} -le 5          \
            and %{TIME_HOUR} -ge 8 and %{TIME_HOUR} -le 20       ) \
           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/

Обратите внимание, что SSLRequire теперь устарела в пользу Require, что является почти строгим надмножеством. У вас есть https://httpd.apache.org/docs/2.4/expr.html подробности о том, как вы можете тестировать, а начало https://httpd.apache.org/docs/2.4/mod/mod_ssl.html показывает все возможные переменные "SSL", которые вы можете проверить, например:

SSL_CLIENT_M_SERIAL     string  The serial of the client certificate
SSL_CLIENT_S_DN     string  Subject DN in client's certificate
SSL_CLIENT_S_DN_x509    string  Component of client's Subject DN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...