Мне нужно включить проверку сертификата клиента только для запросов из-за пределов нашей интрасети без проверки для запросов, например, из 192.168.0.0/24. Я пытался использовать geo
модуль для определения переменной для внутренней подсети. В http
контекст:
geo $intranet {
default 0;
192.168.0.0/24 1;
}
В server
контекст
if ($intranet != 1) {
ssl_verify_client on;
}
но нельзя использовать ssl_verify_client
директива внутри if
заявление. Я получаю сообщение об ошибке:
Директива ssl_verify_client здесь не разрешена
Есть ли другой способ сделать это?
Наконец я нашел решение, которое работает, как ожидалось.
В http
контекст:
geo $intranet {
default 0;
192.168.0.0/23 1;
}
В server
контекст:
ssl_verify_client optional;
set $verify $intranet$ssl_client_verify;
if ($verify ~ (0NONE|0FAILED)) {
return 403;
}