Задача:
Ограничить доступ средствами nginx к определенному разделу сайта только по выданному пользователю сертификату.
Расписывать генерацию и подписание клиентских сертификатов в OpenSSL нет смысла этого полно, можно глянуть
Возможный путь решения:
ssl_verify_client optional – pазрешает проверку клиентских сертификатов. Результат проверки доступен через переменную $ssl_client_verify. Параметр optional (доступен в nginx 0.8.7+) запрашивает клиентский сертификат, и если сертификат был предоставлен, проверяет его. Результат проверки клиентского сертификата: SUCCESS, FAILED и, если сертификат не был предоставлен – NONE.
Далее в конфиге nginx для виртуального хоста
# Защищаемая директория location /private { # если клиентский сертификат не прошел проверку отдаем 403 if ($ssl_client_verify != SUCCESS) { return 403; } .... }
Links: