繁体   English   中英

针对X.509客户端身份验证的Apache + mod_ssl中间CA自动发现

[英]Apache + mod_ssl intermediate CA auto discovery for X.509 client auth

是否可以(...补丁程序,模块,任何东西...)配置apache / mod_ssl Web服务器(任何版本)以自动发现/下载中间发行的CA证书,并将其发回到预定义的信任根CA?

我们需要能够为成千上万的最终用户提供TLS客户端身份验证,并可能需要Web服务器信任数百个中间发行CA。 我们可以使用Axway / Tumbleweed Server验证程序来处理链中证书的SCVP / OCSP / CRL验证(吊销,OID策略等),但是为了使Axway服务器验证程序插件通过客户端证书, apache / mod_ssl必须首先对客户端证书进行身份验证/验证,并且它针对预先配置的apache CA证书数据库(包含PEM编码的CA证书的串联列表的文本文件或包含各个证书文件的目录)进行发行链。

不管apache是​​否知道颁发CA链(因为SCVP会为我验证该链),我都可以接受任何证书,但是我找不到任何表明甚至可能的信息。

我可以手动(或通过脚本)创建CA证书捆绑文本文件,但是我确信这将很快成为一个很大的文件,并且需要定期进行扫描以删除过期的CA证书并添加新颁发的证书。 当然,这种方法的问题是,当将新的CA证书添加到捆绑文件/目录中时,将需要重新启动Web服务器,而我生成的文件的大小可能为几兆字节,这对Web服务器的性能不利。 。

任何帮助和/或想法,我们将不胜感激。

您可能对此问题感兴趣。 但是,除非您真的了解自己在做什么,否则很可能会引入一个安全漏洞。

这有两个问题:

  1. SSLVerifyCLient optional_no_ca将让任何客户端证书通过。 您唯一可以确定的是,客户端在其所提供的证书中具有与公钥匹配的私钥(该证书在日期上可能还需要当前有效且具有TLS客户端密钥,我不能记得)。

  2. SSLCADNRequestFile指向一个空文件(或仅返回一个行)将使服务器向其客户端通告CA的空列表。 请注意,这是TLS 1.0之前的未记录行为(但通常可以使用),并且从TLS 1.1开始授权,但是作为“未指定”行为。

第一点是一个问题,因为您根本不需要在Apache Httpd中验证证书。 可以是确定的,如果后面的应用程序(这依赖于身份验证)做了它的身份验证层的一部分(到你在一个可信任的方式转发客户端证书链)。 对于Apache Httpd层本身中的任何内容,绝对不行: SSL_CLIENT_S_DN使用诸如SSL_CLIENT_S_DNFakeBasicAuth类的表达式的任何限制都根本无法依靠。

第二点在可用性方面可能是一个问题,因为它可能会使许多客户端感到困惑,特别是具有多个可用证书并且通常根据服务器播发的CA执行自动选择的客户端。

更一般地,具有如此多种中间CA的“ 成千上万的最终用户 ”的情况似乎很不寻常。 在传统的PKI模型中,您配置的CA是您信任的锚点:它们是有原因的,并且您信任它们。 真正应该由客户端来提供所需的中间证书(或由服务器来信任它们并显式地发布它们)。 尽管您尝试做的事情在技术上可能是可行的,但是您需要在实现过程中格外小心。 还不清楚这与各种行政标准和政策的配合程度如何。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM