我有以下场景:一个中央更新服务器(运行 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>
问候,基督徒