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

Authentication lighttpd-根据ssl协商期间发现的客户端证书CN的值拒绝连接。(ssl.verifyclient),authentication,ssl-certificate,client-server,lighttpd,Authentication,Ssl Certificate,Client Server,Lighttpd,我想根据ssl协商期间发现的客户端证书CN的值删除或拒绝连接。 我不熟悉语法,也找不到类似的例子 我被lighttpd v.1.4.45卡住了 在实代码和伪代码的混合中: $SERVER["socket"] == ":443" { ssl.engine = "enable" ... ssl.ca-file = "..." ... # client side authentification ssl.verifyclient.activate = "enab

我想根据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>
}
$SERVER[“socket”]=“443”{
ssl.engine=“启用”
...
ssl.ca-file=“…”
...
#客户端身份验证
ssl.verifyclient.activate=“启用”
ssl.verifyclient.enforce=“启用”
ssl.verifyclient.depth=“2”
#此行指示提取客户端证书CN值
ssl.verifyclient.username=“ssl\u CLIENT\u S\u DN\u CN”
}
#伪代码
{
}
可以在lighttpd级别完成吗?假设不可以直接使用应用程序代码。

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

使用lighttpd mod_auth


您必须在
user=…| user=…

中列出允许的SSL\u客户端\u DN\u CN值!就像魔术一样。我只是将其粘贴到一个文件/etc/lighttpd/conf available/02-auth-cert.conf中,将其链接到conf enabled,它就工作了。我查看了您引用的手册页,没有看到该示例或“外部”或“证书”的引用。你有超能力。我还应该提到,通配符“*”在“requires”右边的值中似乎不起作用。应该注意的是,文档中没有通配符“*”:为什么你在帖子中认为它可以工作,而不提供文档链接?如果您想允许任何经过身份验证的用户,那么请使用“require”=>“valid user”,如文档所示。我认为没有通配符是完全令人满意的。我之所以提到它,是因为我在最初的问题中提出了这个问题,并且想越过t。在最初的问题中,我将其想象为服务器域通配符功能的对应项-例如
*.example.com
。当然,通配符服务器证书存在安全风险,客户端的通配符ID也存在相应的风险,因此我们最好不要使用它们。---无论如何,我想再次感谢你的帮助!也感谢您认真地更新了。
server.modules += ("mod_auth")
auth.require = ( "" =>
                 (
                   "method"  => "extern",
                   "realm"   => "certificate",
                   "require" => "user=agent007|user=agent008" 
                 )
               )