LINUX.ORG.RU

API клиентских сертификатов в nginx

 , , ,


0

1

Необходимо сделать аутентификацию на основе клиентских сертификатов в nginx. Есть ли в nginx какой-то API, при помощи которого можно управлять (добавлять, удалять) клиентскими сертификатами извне, вместо ручной правки соответствующего файла?

Если есть более удобные альтернативы nginx, буду рад услышать и о них. На самом деле, помимо аутентификации, мне нужен лишь прокси, который будет перенаправлять запросы на те или внутренние URL-и, в соответствии с path в исходных URL-ях запросов.


Есть ли в nginx какой-то API, при помощи которого можно управлять (добавлять, удалять) клиентскими сертификатами извне, вместо ручной правки соответствующего файла?

Что значит «добавлять, удалять»? Клиентские сертификаты как бы не ограничены в количестве, главное, чтоб правильным CA были подписаны.

Harald ★★★★★
()

Клиентские сертификаты в сервере не хранятся. На то они и сертификаты. Их подписывает CA, а сервер доверяет подписи этого CA. Т.е. серверу надо знать только CA сертификат, и проверять всех предъявивших свои клиентские сертификаты на корректность подписи.

Oleg_Iu
()
Ответ на: комментарий от hummer

На сервере лежит сертификат CA. Приватным ключем этого сертификата подписываются клиентские сертификаты в центре сертификации (в каталоге с нужными скриптами, в подворотне, в общем, где-то там). Потом клиент приходит на сайт, предъявляет подписанный сертификат по просьбе сервера, сервер проверяет подпись при помощи публичного ключа из сертификата CA, и принимает решение на основе данных в сертификате. Например, считает поле CN= сертификата логином клиента на сайт.

Изначально сервер ничего не знает о существовании никаких клиентских сертфикатов. Так же, например, как и тур-агенство не подозревает о существовании паспорта у пришедшего клиента. Ключевое слово «предъявить».

Oleg_Iu
()
Ответ на: комментарий от Oleg_Iu

Как, при такой схеме, удалить одного пользователя (из нескольких), уже имеющего подписанный сертификат?

hummer
() автор топика
Ответ на: комментарий от hummer

CRL - Certificate Revocation List.

Если у вас могут приходить клиенты с любым именем в сертификате - то через отзыв сертификата в CRL. Если сертификат использутеся только как способ аутентификации, а не авторизации - просто закрыть доступ этому пользователю.

Oleg_Iu
()
Ответ на: комментарий от hummer

Забанить по содержимому поля CN, по публичному ключу, по айпи.

Harald ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.