Задача:
Ограничить доступ средствами nginx к определенному разделу сайта только по выданному пользователю сертификату.
Расписывать генерацию и подписание клиентских сертификатов в OpenSSL нет смысла этого полно, можно глянуть . Настройка nginx для ssl –
Возможный путь решения:
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:
