gpt4 book ai didi

apache - puppet 外部证书 : Master Is Not A CA

转载 作者:太空宇宙 更新时间:2023-11-03 14:13:03 26 4
gpt4 key购买 nike

我实际上是在尝试查看 Puppet 是否可以使用外部证书,因为我组织的信息安全部门已经推出了更强大的安全证书,我已经要求他们提供一套证书以查看它是否有效。我仍然打算让 puppetmaster 颁发证书,但是通过与 master 颁发证书的正常方式相同的方式将这两个证书发送给其他代理并自动签名。

该集合包含如下内容:

  1. ABCROOTCA2015.pem – ABC 根 CA 2015 证书
  2. ABCSERVERCA2015.pem – ABC 服务器 CA 2015 证书
  3. puppet2-64.abc.local.p12(服务器) - glpi-49.abc.local 的私钥和证书 - 密码:###
  4. 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 passenger_module/var/lib/gems/1.8/gems/passenger-4.0.53/xxx.so PassengerRoot/var/lib/gems/1.8/gems/passenger-4.0.53 PassengerRuby/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 东西。由于 apache2 服务已打开,webrick puppetmaster 服务已关闭。

执行代理时,显示错误 400,子消息 Master is not a CA。

如果我已经在 apache2 文件夹的 puppetmaster 文件中定义了主机和本地根证书,我不应该获得与通常相同的功能吗?

或者是因为 puppetmaster 不会将自定义证书文件据为己有,所以我们必须重命名该文件?

到目前为止,我已经四处检查,但没有多少 Material 可供检查,除非有可能与我的 CA 设置不匹配的步骤。

任何人都可以帮助启发这个问题吗?非常感谢!

中号

最佳答案

错误 Master is not a CA 是由 Puppet master 上的证书颁发机构功能被禁用引起的,您通过在中指定 ca = false [master] 下的 puppet.conf。

SSL Configuration: External CA Support 中详细介绍了使用外部 CA文档。然而,它包括以下警告,这与您的要求不兼容,“我仍然打算让 puppetmaster 颁发证书,但是通过与 master 颁发证书的正常方式相同的方式将这两个证书发送给其他代理并自动签名”

These configurations are all-or-nothing rather than mix-and-match. When using an external CA, the built in Puppet CA service must be disabled and cannot be used to issue SSL certificates.

Additionally, Puppet cannot automatically distribute certificates in these configurations — you must have your own complete system for issuing and distributing certificates.

简而言之,在 Puppet 中使用外部 CA 时,您负责签署和分发证书。

(虽然您可以尝试删除 ca = false,但您很可能会遇到问题,因为它是不受支持的配置。)

如果您将签名的代理证书放在代理系统上,替换默认路径或另外指定 host* configuration options ,那么代理不应尝试使用 Puppet master 的(禁用的)CA 功能。

关于apache - puppet 外部证书 : Master Is Not A CA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26463546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com