Спасибо за совет — все оказалось проще, но от разработки модуля я в данный момент уже не могу отказаться, буду реализовывать проверку в модуле и добавлять какой-то дополнительный функционал - поддержку отменённых сертификатов (revocation lists), к примеру.
Подкажите, пожалуйста, как реализовать проверку сертификата в модуле.
# клиентам с Common Name=test-client-1 в сертификате запрещаем доступ
к урлам /dir
location /dir {
if ($ssl_client_s_dn ~ "/CN=test-client-1/") { return 403; }
}
# клиентам с Common Name=client-2 в сертификате редиректим /lemus на /dir
location /lemus {
if ($ssl_client_s_dn ~ "/CN=client-2/") { rewrite ^ /dir/; }
}
> Я пишу дипломную работу, в её рамках необходимо разработать модуль, который
> может авторизовать пользователей используя клиентские SSL сертификаты, и
> накладывать соответствующие ограничения на доступность директорий (к
> примеру), в зависимости от параметров клиентского сертификата (скажем, от
> Common Name).
>
> Могли бы вы посоветовать как я могу реализовать и обеспечить вызов функции
> (verify_callback), используемой для проверки сертификата в
> SSL_CTX_set_verify() в своем модуле?
>
> Пока есть две идеи: Первая, более «правильная» — «достучаться» из модуля до
> ssl контекста соединения и вызывать для него SSL_CTX_set_verify с функцией в
> модуле, вторая — менять сам код модуля ngx_http_ssl_module.