预签名证书

因为存在安全隐患,如果你能辅助签名过程,最好避免使用自动签名。 在一般情况下,如果你想自动加入大量的客户端,最好在 Puppetmaster 上预先生成证书,然后将其作为构建过程的一部分推送给客户端。 你可以使用 puppet cert --generate <hostname> 命令生成预签名证书(pre-signed certificate)。

操作步骤

  1. 使用如下命令为 client1.example.com 生成预签名证书:

    puppet cert --generate client1.example.com
    

    Puppet 现在将为客户端 client1.example.com 生成并签署客户端证书。

  2. 传输三个所需的文件到新的客户端:包括客户端私钥、客户端证书和 CA 证书。 这三个文件位于:

    /etc/puppet/ssl/private_keys/client1.example.com.pem
    /etc/puppet/ssl/certs/client1.example.com.pem
    /etc/puppet/ssl/certs/ca.pem
    

    复制上述三个文件到客户端相应的目录下,Puppet 会自动进行身份验证从而省略证书请求这一步骤。 值得注意的是 Puppet 的 SSL 证书的位置依赖于 puppet.conf 中的 ssldir 设置。

参见本书