Apache SSLVerifyClient 最小深度

Apache SSLVerifyClient 最小深度

我有以下场景:一个中央更新服务器(运行 apache)托管不同客户的更新包。一些包包含许可证信息,因此客户 A 不能访问客户 B 的包。

我想通过使用客户端证书来确保这一点。因此,我创建了一个根 CA(使用普通的 openssl)并创建了两个中间 CA(每个客户一个,均由根 CA 直接签名,因此它们是“并行的”)。

我能够以要求客户端提供有效证书的方式配置 apache。不幸的是,服务器上的两个 vHost 都接受由两个中间 CA 颁发的证书。

我如何配置 apache 使其仅接受由两个中间 CA 之一直接颁发的客户端证书?

这是其中一个配置文件:

#pache  ************************************
# Vhost template in module puppetlabs-apache
# Managed by Puppet
# ************************************

<VirtualHost cust2.munki.puppet.intra:443>
ServerName cust2.munki.puppet.intra

## Vhost docroot
DocumentRoot "/srv/munki/cust2.munki.puppet.intra"

## Directories, there should at least be a declaration for /srv/munki/cust2.munki.puppet.intra

<Directory "/srv/munki/cust2.munki.puppet.intra">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Require all granted
</Directory>

## Logging
ErrorLog "/var/log/apache2/munki.puppet.intra cust2 ssl_error_ssl.log"
ServerSignature Off
CustomLog "/var/log/apache2/munki.puppet.intra cust2 ssl_access_ssl.log" combined

## SSL directives
SSLEngine on
SSLCertificateFile      "/etc/ssl/cust2.munki.puppet.intra.cert.pem"
SSLCertificateKeyFile   "/etc/ssl/private/cust2.munki.puppet.intra.key.pem"
SSLVerifyClient         require
SSLVerifyDepth          2
SSLCACertificateFile    "/etc/ssl/cust2.cert.pem"
</VirtualHost>

问候,基督徒

相关内容