URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 8060
[ Назад ]

Исходное сообщение
"Условный ssl_verify_client"

Отправлено maksek , 05-Дек-16 18:51 
Здравствуйте.

Подскажите, как можно включать проверку клиентких сертификатов по условию. В моём случае по подсети. Нужно включать проверку для запросов "из вне", и не проверять при запросах "изнутри". Попробобовал использовать модуль `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" directive is not allowed here

Как можно решить эту задачу другим способом?


Содержание

Сообщения в этом обсуждении
"Условный ssl_verify_client"
Отправлено skvernobot , 05-Дек-16 19:47 
>[оверквотинг удален]
>     192.168.0.0/24 1;
>   }
> В `server` контексте:
>   if ($intranet != 1) {
>     ssl_verify_client on;
>   }
> Но оказалось, что `ssl_verify_client` нельзя использовать в if  контексте. В логах
> ошибка:
>   "ssl_verify_client" directive is not allowed here
> Как можно решить эту задачу другим способом?

http://serverfault.com/questions/488638/how-to-require-clien...


"Условный ssl_verify_client"
Отправлено maksek , 05-Дек-16 23:39 
> http://serverfault.com/questions/488638/how-to-require-clien...

Спасибо, наводка помогла. Сделал вот так

  set $verify $intranet$ssl_client_verify;
  
  if ($verify ~ (0NONE|0FAILED)) {
    return 403;
  }

Вроде работает ожидаемо.