lighttpd - 根据在ssl协商期间发现的客户端证书CN的值拒绝连接。 (ssl.verifyclient)

问题描述 投票:0回答:1

我想根据在ssl协商期间发现的客户端证书CN的值来删除或拒绝连接。我不熟悉语法,也找不到类似的例子。

我坚持使用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级别完成吗?假设无法选择应用程序代码。

(我也很想看到一个如何在应用程序级别完成的示例,但这不是主要问题。)

authentication ssl-certificate client-server lighttpd
1个回答
1
投票

使用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" 
                 )
               )

您必须在user=...|user=...中列出允许的SSL_CLIENT_S_DN_CN值

© www.soinside.com 2019 - 2024. All rights reserved.