【发布时间】:2014-12-15 07:28:12
【问题描述】:
我实际上是在尝试查看 Puppet 是否可以使用外部证书,因为我组织的信息安全部门已经推出了一个更强大的安全证书,我已经要求他们提供一套以查看它是否有效。我仍然打算让 puppetmaster 颁发证书,但是通过与 master 颁发证书并自动签名的正常方式相同的方式向其他代理颁发两个证书。
该集合包括以下内容:
- ABCROOTCA2015.pem – ABC 根 CA 2015 证书
- ABCSERVERCA2015.pem – ABC 服务器 CA 2015 证书
- puppet2-64.abc.local.p12(服务器) - glpi-49.abc.local 的私钥和证书 - 密码:###
- glpi-49.abc.local.p12(代理) - 10.5.137.175 的私钥和证书 - 密码:###
由于外部证书需要 Apache Passenger 来处理这个问题,我已经安装了 Apache Passenger。上面这两个证书已放置在它们各自的文件夹中(/var/lib/puppet/ssl/certs,另一个副本将服务器证书放置在 /private_keys 文件夹中。
鉴于上面的两个证书文件,这是我的配置文件,Apache 端,存储在“/etc/apache2/sites-enabled/puppetmaster”(这是针对 Ubuntu)
<VirtualHost *:8140>
SSLEngine on
SSLProtocol -ALL +SSLv3 +TLSv1
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP
SSLCertificateFile /var/lib/puppet/ssl/certs/mimosserverca2015.pem
SSLCertificateKeyFile /var/lib/puppet/ssl/private_keys/mimosserverca2015.pem
#SSLCertificateChainFile /var/lib/puppet/ssl/certs/mimosrootca2015.pem
SSLCACertificateFile /var/lib/puppet/ssl/certs/mimosrootca2015.pem
# If Apache complains about invalid signatures on the CRL, you can try disabling
# CRL checking by commenting the next line, but this is not recommended.
SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
SSLVerifyClient optional
SSLVerifyDepth 1
# The `ExportCertData` option is needed for agent certificate expiration warnings
SSLOptions +StdEnvVars +ExportCertData
# This header needs to be set if using a loadbalancer or proxy
RequestHeader unset X-Forwarded-For
RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e
RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e
RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e
DocumentRoot /usr/share/puppet/rack/puppetmasterd/public
#RackBaseURI /
<Directory /usr/share/puppet/rack/puppetmasterd>
Options None
AllowOverride None
# Apply the right behavior depending on Apache version.
Order allow,deny
Allow from all
</Directory>
#杂项 LoadModule 乘客模块 /var/lib/gems/1.8/gems/passenger-4.0.53/xxx.so 乘客根 /var/lib/gems/1.8/gems/passenger-4.0.53 乘客Ruby /usr/bin/ruby1.8
ErrorLog /var/log/apache2/puppetmaster_ssl_error.log
CustomLog /var/log/apache2/puppetmaster_ssl_access.log combined
</VirtualHost>
用于 puppetmaster 的 puppet.conf。我只添加了以下附加行:
[main]
ca_server = puppet2-64.mimos.local
[master]
ca = false
certname = mimosserverca2015
对于要为此测试的代理之一,我在代理的 puppet 配置文件中添加了一个 ca_server 东西。 webrick puppetmaster 服务已关闭,因为 apache2 服务已开启。
执行代理时,显示错误 400,子消息 Master is not a CA.
如果我已经在 apache2 文件夹的 puppetmaster 文件中定义了主机和本地根证书,我不应该获得与通常相同的功能吗?
或者是因为 puppetmaster 不会将自定义证书文件作为自己的,因此我们必须重命名该文件?
到目前为止,我已经检查过,但没有太多需要检查的材料,除非有可能与我的 CA 设置不匹配的步骤。
任何人都可以帮助启发这个问题吗?非常感谢!
M
【问题讨论】: