lighttpd - отклонить соединение на основе значения сертификата клиента CN, обнаруженного во время согласования ssl.(Ssl.verifyclient) - PullRequest
0 голосов
/ 25 февраля 2019

Я хочу отбросить или отклонить соединение на основе значения сертификата клиента CN, обнаруженного во время согласования ssl.Я не знаком с синтаксисом и не могу найти похожие примеры.

Я застрял с lighttpd v.1.4.45 .

В смеси реальныхи псевдокод:

$SERVER["socket"] == ":443" {
  ssl.engine = "enable"
  ...
  ssl.ca-file =  "..."
  ...
  # client side authentification       
  ssl.verifyclient.activate = "enable"
  ssl.verifyclient.enforce = "enable"
  ssl.verifyclient.depth = "2"
  # this line instructs client cert CN value to be extracted
  ssl.verifyclient.username = "SSL_CLIENT_S_DN_CN"  
}
# psuedocode
<client CN> <not regexp-equal> <regexp> {
  <reject>
}

Можно ли это сделать на уровне lighttpd ?Предположим, что переход к коду приложения не возможен.

(Мне также любопытно увидеть пример того, как это можно сделать на уровне приложения, но это не основной вопрос.)

1 Ответ

0 голосов
/ 25 февраля 2019

Используйте lighttpd mod_auth.https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModAuth

server.modules += ("mod_auth")
auth.require = ( "" =>
                 (
                   "method"  => "extern",
                   "realm"   => "certificate",
                   "require" => "user=agent007|user=agent008" 
                 )
               )

Вы должны указать разрешенные значения SSL_CLIENT_S_DN_CN в user=...|user=...

...