Apache 伪外部证书:主证书不是CA

Apache 伪外部证书:主证书不是CA,apache,ssl,puppet,Apache,Ssl,Puppet,我实际上是想看看Puppet是否可以使用外部证书,因为我所在组织的信息安全部门已经推出了一个更强大的安全证书,我已经要求他们提供一套,看看它是否有效。我仍然打算让puppetmaster颁发证书,但这两个证书将通过与主证书颁发和自动签名的正常方式相同的行为,颁发给其他代理 该集合包括以下内容: ABCROOTCA2015.pem–ABC根CA 2015证书 ABCSERVERCA2015.pem–ABC服务器CA 2015证书 puppet2-64.abc.local.p12(服务器) -glp

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

该集合包括以下内容:

  • 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文件夹中

    鉴于上面的两个证书文件,这是我的配置文件apacheend,存储在“/etc/apache2/sites enabled/puppetmaster”(这是用于Ubuntu的)

    对于其中一个要测试的代理,我在代理的puppet配置文件中添加了一个ca_服务器。webrick puppetmaster服务已关闭,因为apache2服务已打开

    执行代理时,显示错误400,子消息Master不是CA

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

    或者是因为puppetmaster不会将自定义证书文件作为自己的文件,因此我们必须重命名该文件

    到目前为止,我已经检查过了,但是没有太多的材料需要检查,除非有一些步骤可能与我的CA设置不匹配

    有人能在这个问题上提供一些启发吗?非常感谢


    M

    错误
    主机不是CA
    是由于傀儡主机上的证书颁发机构功能被禁用而导致的,您通过在
    [Master]
    下的Puppet.conf中指定
    CA=false来显式执行此操作

    使用外部CA在本文档中有很好的介绍。但是,它包含以下警告,这与您的要求不符,“我仍然打算让puppetmaster颁发证书,但这两个证书将通过与主证书颁发和自动签名的正常方式相同的行为发送给其他代理。”

    这些配置要么全有要么全无,而不是混搭。 使用外部CA时,必须启用内置的Puppet CA服务 已禁用,无法用于颁发SSL证书

    此外,Puppet无法在中自动分发证书 这些配置-您必须拥有自己的完整系统,以便 颁发和分发证书

    简单地说,当将外部CA与Puppet一起使用时,您负责签名和分发证书

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

    如果在代理系统上放置签名代理证书,替换默认路径或另外指定
    主机*
    ,则代理不应尝试使用Puppet master的(禁用的)CA功能

    <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>    
    
        ErrorLog /var/log/apache2/puppetmaster_ssl_error.log
        CustomLog /var/log/apache2/puppetmaster_ssl_access.log combined
    
    </VirtualHost>
    
       [main]
        ca_server = puppet2-64.mimos.local
    
        [master]
        ca = false
        certname = mimosserverca2015