ID статьи: 1542
Последнее обновление: 29 авг, 2024
KnowledgeBase: Product: NGFW Version: 7.1.x Technology: Identification and Authentication
В данной статье рассматриваются примеры настройки сертификатов для работы в NGFW 7.1.x для инспектирования SSL, Captive-портала и аутентификации через сертификаты в режиме PKI. Все команды предполагают использование Linux-системы. Для разных режимов работы с трафиком в NGFW требуются разные типы сертификатов. В этой статье рассматриваются различные режимы работы NGFW и свойства, которыми должны обладать сертификаты для использования в этих режимах. В версии NGFW 7.1.x. для использования сертификатов в аутентификации создан новый тип профилей — профиль клиентского сертификата. В нём определяется, какие сертификаты входят в цепочку доверия при проведении аутентификации. Конкретный профиль добавляется в соответствующий объект, где нужна аутентификация через сертификат: Captive-портал, правила reverse-прокси и так далее. Подход с использованием профилей клиентских сертификатов позволяет отделить выписывание и назначение сертификатов пользователям от логики работы NGFW. Профиль настраивается один раз и в нём указываются сертификаты цепочки доверия и правила извлечения имени пользователя из данных сертификата, а непосредственно управление клиентскими сертификатами происходит в удостоверяющем центре организации. Термины и обозначенияСертификат / CertificateСертификат, он же X.509-сертификат — стандартизированный бинарный документ или файл, удостоверяющий подлинность веб-сайта, личности пользователя или какой-нибудь другой информации. У владельца сертификата имеется секретный закрытый ключ, которым он может создавать цифровые подписи данных, а в сертификате находится открытая часть этого ключа, позволяющая проверить цифровую подпись. X.509-сертификаты образуют иерархию/цепочку доверия, когда сертификат более высокого уровня подтверждает своей цифровой подписью достоверность сертификата нижнего уровня. Каждый сертификат включает в себя содержательную часть (формализованные структурированные данные типа названия веб-сайта или допустимых режимов применения сертификата), открытый ключ (public key) сертификата и цифровую подпись, созданную вышестоящим сертификатом для содержательной части и открытого ключа. Закрытый ключ (private key) сертификата хранится отдельно и не должен никогда публиковаться. Подпись для сертификата создаётся при помощи закрытого ключа. Проверить подпись можно открытым ключом того сертификата, который был использован для подписи. Технически подписать сертификат можно любым другим сертификатом, однако для формирования цепочки доверия требуется, чтобы вышестоящий сертификат обладал свойством удостоверяющего центра. Самый верхний сертификат в цепочке доверия подписан собственным закрытым ключом (самоподписанный сертификат) и называется корневым сертификатом (root certificate). В цепочке доверия все сертификаты выше финального должны быть CA-сертификатами (сертификатами удостоверяющего центра — УЦ). Для идентификации в сертификате используется поле Subject; для идентификации сертификата, которым подписан этот сертификат, используется поле Issuer. Структура у них одинаковая — distinguished name (DN) и это поле уникальным образом идентифицирует сертификат. Поле DN структурированное и может включать данные разных типов: Common name, E-mail, Organization и так далее. В сертификате есть срок действия — две даты, между которыми он считается действительным. Удостоверяющий центр / УЦ / Certification Authority / CAОрганизация или отдел организации, обладающий возможностью создавать сертификаты. Обычно удостоверяющий центр имеет несколько сертификатов, которые используются для подписывания. Все такие сертификаты принято называть УЦ-сертификатами (CA) или сертификатами удостоверяющего центра. Удостоверяющий центр никогда не подписывает сертификаты со свойством УЦ, так как это опасная операция, способная скомпрометировать УЦ. Публичный удостоверяющий центр никогда не будет этого делать для сторонних клиентов. На практике понятия «удостоверяющий центр» и «сертификат удостоверяющего центра» обычно считаются синонимами, хотя формально у одного удостоверяющего центра как организации в управлении может быть несколько сертификатов. Сертификаты удостоверяющих центров, которые подписаны каким-либо другим сертификатом, называются промежуточными или подчинёнными. Любой сертификат, подписанный действующим и не отозванным сертификатом считается действующим. Отзыв сертификата / Certificate revocation / Список отозванных сертификатовУдостоверяющий центр ведёт специальный реестр отозванных сертификатов, то есть таких, которые до истечения срока действия были объявлены недействительными. Существует общепринятая схема обращения к таким реестрам и по этой схеме работают, например, браузеры или другие продукты, в том числе NGFW. Список отозванных сертификатов называется CRL (Certificate Revocation List). Запрос на получение сертификата / Certificate Signing Request / CSRСертификат создаётся удостоверяющим центром на основе запроса на получения сертификата (CSR). По сути CSR — это тот же сертификат, только подписанный тем же закрытым ключом, открытая часть которого включена в сертификат. Удостоверяющий центр проверяет, что цифровая подпись соответствует указанному открытому ключу и создаёт новую цифровую подпись уже собственным закрытым ключом. В процессе генерации сертификата закрытый ключ клиента никогда не покидает безопасное окружение клиента. Обычно удостоверяющий центр добавляет к данным из CSR свои: идентификатор УЦ, информацию о режимах использования и так далее. Аутентификация через сертификат / PKI-аутентификацияСпособ аутентификации клиента, при котором для верификации клиента используется не логин/пароль, а клиентский сертификат, установленный вместе с закрытым ключом на стороне клиента. Программное окружениеДля данного примера подразумевается, что используетcя какой-либо вариант ОС Linux с установленным ПО openssl версии 1.1.1 или выше. Рекомендуется создать отдельный каталог для тестирования и запускать все команды в нём, например:
Сертификаты в режиме инспектирования SSLОбщая схема цепочки сертификатов в режиме инспектирования SSL: Сертификат для инспектирования SSL-трафика должен обладать свойствами удостоверяющего центра и обычно он управляется этой же организацией. Кроме того, финальный сертификат (на рисунке выше это SSL Inspection Certificate) обязательно должен иметь свойство Path Length Constraint не равным нулю, либо совсем его не иметь. Это необходимо для того, чтобы этим сертификатом можно было создать ещё один сертификат, который используется непосредственно для выписывания на каждом из узлов кластера. Для корректной работы инспектирования корневой сертификат Root CA Certificate должен быть установлен в доверенное хранилище на стороне клиента. А промежуточный сертификат Intermediate CA Certificate должен отправляться в цепочке промежуточных сертификатов. Создание цепочки сертификатов для инспектирования SSLВ этом разделе будет показан пример, как вручную через команды openssl создать всю цепочку сертификатов для инспектирования. Сначала создаётся закрытый ключ и сертификат для корневого удостоверяющего центра (Root CA Certificate). Это самоподписанный сертификат, в котором commonName=Root CA Certificate:
Далее создается закрытый ключ и сертификат для промежуточного сертификата Intermediate CA Certificate:
Затем создаётся финальный сертификат (SSL Inspection Certificate), который будет использоваться в NGFW для инспектирования. Это тоже CA-сертификат:
ПримечаниеДля безопасного использования сертификата в этом режиме рекомендуется в реальной конфигурации финальный сертификат для инспектирования (SSL Inspection Certificate) создавать через CSR на стороне NGFW, чтобы его закрытый ключ никогда не покидал границы NGFW. В данном примере создаётся сертификат и ключ отдельно только для демонстрационных целей.
В итоге были созданы следующие файлы:
Настройка NGFW и браузера для инспектирования SSL1. В веб-консоли администратора в разделе Настройки ➜ Сертификаты импортировать сертификат для инспектирования и промежуточный сертификата в виде цепочки:
Сертификат для инспектирования и закрытый ключ загружаются в поля Файл сертификата и Приватный ключ соответственно. Промежуточный сертификат загружается в поле Цепочка сертификатов. Корневой сертификат в цепочку добавлять не нужно. 2. В свойствах импортированного сертификата назначить роль SSL инспектирование:
3. Создать и включить правило SSL инспектирования. В веб-консоли администратора в разделе Политики безопасности ➜ Инспектирование SSL создаётся новое правило (или включается существующее). Проверяется корректность указания зоны источника и пользователей. Если теперь на клиентской машине попытаться открыть в браузере любой внешний https-адрес, то отобразится ошибка соединения и предупреждение о некорректном сертификате. Это значит, что инспектирование работает и нужно настроить систему на стороне клиента. 4. Импортировать в клиентскую систему сертификат корневого удостоверяющего центра для инспектирования. Сертификат root-ca-crt.pem импортируется в хранилище доверенных сертификатов. Это может быть глобальное системное хранилище или отдельное хранилище для браузера Firefox, например. Другие сертификаты добавлять не нужно. Если теперь попытаться открыть https-адрес, он должен успешно и без ошибок открыться. NGFW при включении инспектирования динамически создаёт сертификат для указанного сайта, подписывает его ключом сертификата из файла ssl-inspection-ca-key.pem, после чего добавляет в цепочку сертификатов дополнительный промежуточный сертификат из файла intermediate-ca-crt.pem. Сертификат для Captive-порталаОбщая схема цепочки сертификатов для использования в Captive-портале: Для пользователя Captive-портал выглядит как обычный сайт с обычным доменом. В данном примере используется доменное имя test.usergate.local. Доменные сертификаты могут выписываться как сторонним удостоверяющим центром, так и удостоверяющим центром самой организации. Эти сертификаты используются для защиты соединения и удостоверения на стороне клиента, что он видит доверенный сайт, например, в браузере. Корневой удостоверяющий центр (на иллюстрации его сертификат Root CA Certificate) обычно не используется непосредственно для выписывания сертификатов, вместо этого создаётся цепочка из одного или двух подчинённых (промежуточных) сертификатов, имеющих права на выписывание других сертификатов. На иллюстрации это сертификаты Intermediate CA Certificate и Intermediate CA 2 Certificate. При настройке сервера указывается непосредственно доменный сертификат и его закрытый ключ (на схеме Domain certificate), а промежуточные сертификаты указываются в виде дополнительной цепочки. Чтобы вся схема работала, на стороне клиента сертификат Root CA Certificate нужно добавить в хранилище доверенных сертификатов. Остальные промежуточные сертификаты в хранилище доверенных добавлять не нужно, они придут вместе с TLS-ответом от сервера и вся цепочка успешно верифицируется. Если доменный сертификат выписан общеизвестным удостоверяющим центром, то корневой сертификат для него обычно уже есть в хранилище доверенных сертификатов. ПримечаниеЕсли настроено инспектирование SSL-трафика и на клиентские рабочие станции уже установлен корректный корневой сертификат цепочки, то не обязательно назначать отдельный сертификат для домена Captive-портала, так как в NGFW по умолчанию сертификат для него создаётся на основе сертификата для инспектирования SSL-трафика.
Создание цепочки доменных сертификатов для тестированияЗакрытый ключ и сертификат для корневого удостоверяющего центра (Root CA Certificate) был создан на предыдущем этапе. Закрытый ключ и сертификат для промежуточного сертификата (Intermediate CA Certificate) также был создан ранее. Далее создаётся Intermediate CA 2 Certificate, подписанный сертификатом Intermediate CA Certificate:
Финальный доменный сертификат (Domain Certificate) для домена test.usergate.local подписывается сертификатом Intermediate CA 2 Certificate:
ПримечаниеВ поле commonName сертификата не используется название домена (там просто указано Domain certificate). Вместо этого доменное имя помещается в X.509-расширение Subject Alternative Name. Также в качестве алгоритма открытого ключа использован алгоритм RSA с размером ключа 2048. В остальных сертификатах использовались алгоритмы на эллиптических кривых prime256v1. Различные алгоритмы в данном примере использованы для демонстрации возможности использования разных алгоритмов для генерации ключей.
В итоге имеются следующие файлы:
Настройка NGFW и браузера для использования домена test.usergate.local в роли Captive-порталаПредполагается, что Captive-портал будет использоваться клиентами из сетевой зоны Trusted. 1. Настроить доменное имя Captive-портала в NGFW. В веб-консоли администратора в разделе Настройки ➜ Модули необходимо установить параметр Домен Auth Captive-портала в значение test.usergate.local. NGFW для этого адреса автоматически настроит DNS-резолвинг в корректный адрес для нужной сетевой зоны. 2. Импортировать сертификат в NGFW. В веб-консоли администратора в разделе Настройки ➜ Сертификаты импортировать сертификат домена и цепочку промежуточных сертификатов:
Так как этот сертификат используется для домена, необходимо также загрузить для него закрытый ключ. В свойствах импортированного сертификата назначить роль SSL Captive-портала:
3. Импортировать в клиентскую систему сертификат корневого удостоверяющего центра. В хранилище доверенных сертификатов на клиентской рабочей станции нужно добавить сертификат из файла root-ca-crt.pem. Теперь домен Captive-портала будет открываться с этим сертификатом на рабочей станции без ошибок. Аутентификация через X.509-сертификаты (PKI-аутентификация)Общая схема цепочки сертификатов, используемых для аутентификации: Цель аутентфикации через сертификат — проверить, что на стороне клиента есть соответствующий закрытый ключ, а связанный с ним сертификат проходит проверку через цепочку доверия. Так как проверки происходят на сервере (NGFW), именно там должна настраиваться цепочка доверия. Аутентификация через сертификаты часто подразумевает альтернативную цепочку доверия сертификатов, которая может быть никак не связана с доменным сертификатом и его цепочкой доверия. Часто организация сама поддерживает удостоверяющий центр, используемый для выписывания клиентских сертификатов. В NGFW поддержка этого режима реализована через профили клиентских сертификатов, где задаются цепочки доверия, правила извлечения имени пользователя из сертификата, использование CRL и другие настройки. Настроенный профиль привязывается к объекту, где требуется аутентификация через сертификаты: профилю Captive-портала, правилу reverse-прокси и так далее. При планировании аутентификации через сертификаты организация должна выполнить следующие условия:
Создание цепочки сертификатов аутентификации для тестированияВ этом разделе на примере будет показано, как вручную через вызовы команды openssl создать цепочку описанных на иллюстрации сертификатов УЦ для аутентификации. Общая схема здесь примерно такая же, как и для доменных сертификатов, но используются другие имена для сертификатов, чтобы отличать эту цепочку. Сначала создаётся закрытый ключ и сертификат для корневого удостоверяющего центра Auth Root CA Certificate. Это самоподписанный сертификат, в котором commonName=Auth Root CA Certificate:
Далее создаются закрытые ключи и сертификаты для двух промежуточных сертификатов: 1. Сначала создаётся ключ и сертификат для Intermediate Auth CA Certificate (используется полная схема с явным созданием CSR и последующим созданием сертификата на основе CSR):
2. Создаётся сертификат Auth Sign CA Certificate, подписанный сертификатом Intermediate Auth CA Certificate:
Также создаётся отдельный файл с цепочкой всех CA-сертификатов:
Далее создаются несколько клиентских сертификатов, использующих разные способы кодирования имени пользователя в содержательной части. Все они будут подписаны сертификатом Auth Sign CA Certificate. Кроме того, все клиентские сертификаты будут упакованы в переносимые PKCS#12-контейнеры, пригодные для дальнейшего импорта в клиентские устройства. Создание сертификата, в котором логин пользователя user1 хранится в поле commonName (CN):
Создание сертификата, в котором e-mail пользователя user2@rnk.local записывается в расширении Subject Alternative Name:
Создание сертификата для администратора веб-консоли. Поскольку у администратора нет привязанных к нему e-mail адресов, сопоставление сертификата и записи в базе идёт только по логину, в данном случае это Admin:
В итоге имеются следующие файлы, которые будут использоваться для различных сценариев аутентификации для разных подсистем NGFW:
Импорт в NGFW необходимых для аутентификации сертификатовЧтобы NGFW мог корректно верифицировать клиентский сертификат, ему нужно знать всю цепочку доверия, которая использовалась при создании этого сертификата. Она задаётся следующим образом при импорте нового сертификата в веб-консоли администратора в разделе Настройки ➜ Сертификаты:
Важно! В данном случае загружаются только сертификаты, без закрытых ключей. В поле Файл сертификата загружается сертификат (auth-sign-ca-crt.pem), которым подписаны клиентские сертификаты, а в поле Цепочка сертификатов загружаются целиком остальные сертификаты в цепочке доверия вплоть до самого верхнего самоподписанного (они были записаны в файл pki-auth-chain.pem). Этот шаг общий для всех режимов работы и один объект-сертификат может использоваться в нескольких профилях клиентских сертификатов. Настройка NGFW для аутентификации в Captive-портале через сертификаты1. Настроить на клиентской стороне корректные сертификаты для инспекции TLS и домена Captive-портала.Чтобы в браузере без ошибок работал переход на Captive-портал, на клиентской машине (или в браузере) необходимо установить корневой сертификат цепочки, которая используется для сертификата инспектирования TLS-трафика. Этот процесс описан в разделе Настройка NGFW и браузера для инспектирования SSL. Также необходимо установить сертификат для домена Captive-портала, если для этого используется отдельный сертификат. Этот процесс описан в разделе Сертификат для Captive-портала. Также необходимо проверить, что выбранный домен (в данном примере test.usergate.local) корректно распознаётся на клиентских рабочих станциях и преобразуется в правильный IP-адрес. 2. Создать профиль клиентского сертификата (поиск пользователя через login). Создание профиля клиентских сертификатов, в котором указывается, как именно NGFW должен верифицировать клиентский сертификат: Проверка CRL отключена (Проверка отозванных сертификатов), так как в данных тестовых сертификатах CRL не задаётся. Если здесь оставить значение по умолчанию (Сертификат пользователя), то аутентификация через сертификат будет отклоняться на уровне TLS-протокола, не доходя даже до проверки пользователя. В поле Получить имя пользователя из указывается Common-name, в этом случае значение атрибута commonName поля Subject сертификата будет использоваться для поиска пользователя по его логину. Если в поле Получать имя пользователя из выбрать Subject altname email, то из X.509-расширения сертификата Subject Alternative Name будет извлекаться элемент типа e-mail и по нему будет идти поиск пользователя по адресу электронной почты. Обязательно выбирается корректный шаблон в поле Шаблон страницы аутентификации, в выбранном на скриншоте шаблоне вместо стандартной формы логина используется одна кнопка Войти с помощью сертификата. Также необходимо создать пользователя в NGFW с логином user1:
Этот пользователь будет выбран при использовании сертификата из файла user1-cn.p12. 4. Настроить Captive-правило.Необходимо создать или включить Captive-правило и указать в нём ранее настроенный Captive-профиль: 5. Настроить клиентскую систему для использования сертификата для доступа к Сaptive-порталу.На клиентской рабочей станции необходимо установить сертификат из PKCS#12-контейнера в файле user1-cn.p12. При импорте нужно указать пароль, с которым был создан контейнер — это 1234. Этот процесс зависит от используемой операционной системы и браузера. Например, для Firefox (на любой операционной системе) клиентский сертификат необходимо добавлять в настройках браузера. А в Windows Edge и Chrome используют глобальное системное хранилище. После его установки при попытке зайти на любой сайт должен отобразиться такой экран:
При нажатии на кнопку Войти с помощью сертификата должно открыться окно выбора сертификата, если до этого всё было корректно настроено: После выбора сертификата пользователь должен зайти с логином user1 и получить доступ к интернету. Настройка NGFW для аутентификации в веб-портале через сертификатыВ данном примере настраивается аутентификация в веб-портале по сертификату. Соответствующий пользователь будет выбираться через e-mail, а не login. 1. Создать профиль клиентского сертификата (поиск пользователя через e-mail)Для веб-портала создается новый профиль клиентского сертификата и в нем выбирается режим поиска пользователя через e-mail. Все остальные настройки аналогичны профилю для Captive-портала: 2. Настроить веб-портал.В окне настроек веб-портала настроить ключевые элементы:
Для работы веб-портала его нужно включить на соответствующей сетевой зоне. 3. Настроить пользователя для работы с веб-порталом.Ранее был создан сертификат для пользователя с e-mail user2@rnk.local. Нужно создать локального пользователя с таким же адресом:
Необходимо добавить этого пользователя в свойства веб-портала в разделе Глобальный портал ➜ Веб-портал: 4. Настроить клиентскую систему для использования сертификата для доступа к веб-порталу.На клиентской рабочей станции необходимо установить сертификат из PKCS#12-контейнера в файле user2-email.p12. Здесь всё аналогично импорту сертификата для пользователя user1. Настройка NGFW и браузера для использования клиентского сертификата для доступа к reverse-проксиВ данном примере будет происходить настройка аутентификации в reverse-прокси по сертификату с определением пользователя по полю сертификата commonName. Для адреса сервера reverse-прокси будем использован тот же домен (test.usergate.local) и тот же сертификат, который использовался для Captive-портала. Профиль клиентского сертификата нужно использовать тот же, который был создан в разделе Создать профиль клиентского сертификата (поиск пользователя через login) Аналогично нужно настроить DNS-резолвинг имени test.usergate.local, чтобы на клиентской машине он распознавался в корректный адрес интерфейса в корректной зоне. Также в NGFW создаётся пользователь с логином user1. ПримечаниеПри работе reverse-прокси дополнительного экрана аутентификации нет, соответственно нет альтернативного режима аутентификации — только через сертификат. Если на клиентской рабочей станции не будет подходящего сертификата, то соединение до reverse-прокси не будет установлено.
1. Настроить правило reverse-прокси.В правиле reverse-прокси в поле Авторизовать по сертификату выбрать режим аутентификации PKI, далее указать профиль клиентского сертификата:
Выбрать пользователей, которым разрешается доступ. 2. Настроить клиентскую систему.Для клиентской системы всё аналогично настройке для работы Captive-портала:
Настройка NGFW и браузера для использования клиентского сертификата для входа в веб-консоль администратора NGFWПрофиль клиентского сертификата нужно использовать тот же, который был создан в разделе Создать профиль клиентского сертификата (поиск пользователя через login) 1. Настроить веб-консоль.При использовании сертификата значение из поля commonName сопоставляется с логином администратора, поэтому необходимо проверить, что логин администратора совпадает со значением в сертификате:
Для включения режима нужно в разделе Настройки ➜ Настройки интерфейса в параметре Режим аутентификации веб-консоли выбрать Профиль клиентского сертификата и выбрать собственно профиль: После сохранения на перестройку конфигурации уйдёт несколько секунд и консоль станет полностью недоступной в браузере — для установки соединения понадобится установленный в системе корректный клиентский сертификат. 2. Настроить клиентскую систему.Установить клиентский сертификат из файла webui-admin.p12. Если всё сделано правильно, то при попытке открыть адрес веб-консоли NGFW отобразится окно выбора сертификата:
И после выбора появится дополнительное окно с подтверждением: Аутентификация через X.509-сертификаты (PKI-аутентификация) с использованием CRLCRL / Certificate Revocation List / Список отозванных сертификатов — это механизм для оперативного контроля удостоверяющим центром за выпущенными сертификатами. Упрощённо это список сертификатов, которые удостоверяющий центр считает утратившими силу. Например, если закрытый ключ клиентского сертификата был скомпрометирован, то удостоверяющий центр выпускает новую запись об отозванном сертификате. CRL используются как на серверной, так и на клиентской стороне для проверки действительности сертификатов. Если сертификат удостоверяющего центра появляется в списке отозванных, то все подписанные им подчинённые сертификаты также становятся недействительными. CRL технически выглядит как бинарный файл специального формата, подписанный удостоверяющим центром и выложенный по внешнему URL-адресу, при этом этот адрес также вписан в содержательную часть сертификата удостоверяющего центра. Пользователи сертификата могут скачивать CRL по указанному в сертификате УЦ адресу и выполнять все проверки при обработке сертификатов. Так как Файл CRL подписан удостоверяющим центром, сторонние клиенты обязаны проверять эту подпись при обработке данных. Общая схема сущностей для системы УЦ с CRL выглядит следующим образом: На иллюстрации изображены два разных CRL для двух сертификатов: промежуточного Intermediate Auth2 CA Certificate (CA CRL) и используемого для подписывания клиентских сертификатов, Auth2 Sign CA Certificate (CA Sign CRL). Создание необходимых файлов: сертификаты, CRLВсе необходимые сертификаты создаются по такой же схеме, как в разделе Аутентификация через X.509-сертификаты (PKI-аутентификация). Кроме того, для проверки CRL необходимо иметь доступный HTTP-сервер, где можно публиковать файлы. Необходимо обратить внимание, что CRL-файлы должны публиковаться только через HTTP. Закрытый ключ и сертификат для корневого удостоверяющего центра Auth Root CA Certificate был создан в предыдущем разделе. Далее аналогично создаются закрые ключи и сертификаты для двух промежуточных сертификатов: 1. Сначала для Intermediate Auth2 CA Certificate создаётся ключ и сертификат (используется полная схема с явным созданием CSR и последующим созданием сертификата на основе CSR), также в сертификате указывается URL-адрес CRL:
2. Создаётся Auth2 Sign CA Certificate, подписанный сертификатом Intermediate Auth2 CA Certificate:
Создаётся отдельный файл с цепочкой всех CA-сертификатов, также в сертификате указываем URL-адрес CRL:
Далее создаются несколько клиентских сертификатов, во всех сертификатах будет использоваться поле commonName для определения логина пользователя. Все они будут подписаны сертификатом Auth2 Sign CA Certificate, кроме того, все клиентские сертификаты будут упакованы в переносимые PKCS#12-контейнеры, пригодные для дальнейшего импорта в клиентские устройства. Сертификат для пользователя с логином user1:
Сертификат для пользователя user3:
Для работы с CRL потребуется создать конфигурационные файлы для двух CRL. Файл openssl-casign-crl.conf создается следующей командой:
Файл openssl-ca-crl.conf создается следующей командой:
Создаются файлы базы данных CRL (в них хранится версия CRL) и первые пустые CRL:
CRL пока пустые, позднее в них будут добавлены записи об отзыве сертификатов. Оба файла нужно опубликовать по URL, указанным в соответствующих сертификатах. Для данного примера это:
Посмотреть содержимое CRL casign-crl.pem можно командой:
В итоге имеются следующие файлы:
Создание пользователейВ NGFW необходимо создать пользователей с логинами user1 и user3. Импорт в NGFW необходимых сертификатовВ NGFW загружается сертификат из файла auth2-sign-ca-crt.pem, в качестве цепочки промежуточных сертификатов загружается intermediate-auth2-ca-crt.pem. Закрытые ключи загружать не нужно.
Настройка NGFW для аутентификации в Captive-портале через сертификаты с поддержкой CRL1. Настроить домен и сертификаты.Настройка аналогична ранее описанной в разделе Настроить на клиентской стороне корректные сертификаты для инспекции TLS и домена Captive-портала 2. Создать профиль клиентского сертификата (выбор пользователя через login, поддержка CRL)Создаётся профиль клиентского сертификата, в котором указывается, как именно NGFW должен верифицировать клиентский сертификат. Настройка аналогична ранее описанной в разделе Создать профиль клиентского сертификата (поиск пользователя через login), только в данном случае включается использование CRL: ПримечаниеЕсли вместо опции Считать валидным, если статус неизвестен выбрать опцию Вся цепочка, то аутентификация работать не будет, так как в этом режиме обязательно наличие CRL для каждого из сертификатов цепочки, кроме первого корневого. Значение Вся цепочка параметра Проверка отозванных сертификатов означает, что на отозванные будет проверяться вся цепочка доверия сертификатов.
3. Настроить Captive-профиль (CRL).Настройка аналогична описанной в разделе Настроить Captive-профиль, только в поле Профиль сертификата пользователя выбрать профиль Captive portal auth certificate profile (CRL). Плюс необходимо создать локального пользователя с логином user3. 4. Настроить Captive-правило (CRL).Настройка аналогична описанной в разделе Настроить Captive-правило. 5. Настроить клиентскую систему для использования сертификата для доступа к Captive-порталу (CRL).На клиентской рабочей станции необходимо установить сертификаты из PKCS#12-контейнеров в файлах user1-auth2.p12 и user3-auth2.p12. У всех контейнеров пароль 1234. Если всё сделано правильно, должен быть успешный вход при помощи любого из этих двух сертификатов: Отзыв клиентского сертификата1. Создать CRL для отозванного сертификата пользователя user3.Для примера отозвать сертификат пользователя user3. Первым этапом необходимо обновить базу отозванных сертификатов:
Эта команда обновляет только базу (файл casign_crl_index.txt и другие), для генерации CRL в файле casign-crl.pem необходимо выполнить команду:
Теперь в файле casign-crl.pem есть запись об отозванном сертификате, файл необходимо выложить на сервер, чтобы он стал доступен по адресу http://192.168.84.2/crl/casign-crl.pem 2. Проверить, что отозванный сертификат нельзя использовать для аутентификации пользователя user3.Нужно дождаться, чтобы NGFW скачал файл casign-crl.pem и обновил в своей базе список отозванных сертификатов. Далее необходимо сделать попытку залогиниться из браузера через сертификат пользователя user3. В браузере появится следующее сообщение:
Отзыв промежуточного сертификата1. Сгенерировать CRL для промежуточного сертификата Auth2 Sign CA Certificate.Промежуточный сертификат — это сертификат Auth2 Sign CA Certificate, в нём указан адрес CRL Distribution Point http://192.168.84.2/crl/ca-crl.pem. Необходимо обновить базу отозванных сертификатов и отозвать сертификат Auth2 Sign CA Certificate (это делается с помощью ключа сертификата Intermediate Auth2 CA Certificate):
Для генерации CRL выполняется команда:
2. Проверить, что отозванный сертификат нельзя использовать для аутентификации пользователя user1Нужно дождаться, чтобы NGFW скачал файл ca-crl.pem и обновил в своей базе список отозванных сертификатов. В данном примере будет использован пользователь user1, чтобы проверка на отозванный сертификат сработала выше по цепочке доверия на сертификате, которым подписан клиентский сертификат. В браузере отобразится сообщение, аналогичное сообщению в предыдущем разделе:
Эта статья была:
Полезна |
Не полезна
Сообщить об ошибке
ID статьи: 1542
Последнее обновление: 29 авг, 2024
Ревизия: 1
Просмотры: 86
Комментарии: 0
Теги
|