如何管理Puppet4证书
木偶备忘单
Puppet 是一种配置管理工具,可帮助系统管理员自动执行服务器基础架构的配置、配置和管理。 它通常以主/代理模式运行,主服务器管理多个代理节点的配置。 主机和代理之间的通信通过客户端验证的 HTTPS 进行授权和保护,这需要有效的识别 SSL 证书。 Puppet master 充当管理这些证书的证书颁发机构。
此备忘单样式指南提供了使用 puppet cert
命令管理这些证书的快速参考。
如何使用本指南:
- 本指南采用备忘单格式,带有独立的命令行片段
- 跳转到与您尝试完成的任务相关的任何部分。
注意: 如果 puppet
不在您的路径中,您需要在以下命令中提供 puppet
的完整路径。
列出证书请求
当 Puppet 代理服务器上线时,如果一切配置正确,它们将向 Puppet Master 提交证书签名请求。 可以使用 puppet cert list
命令查看这些请求。
列出所有请求,签名和未签名
要查看所有已签名和未签名的证书请求,请使用 --all
标志,如下所示:
sudo puppet cert list --all
签名的请求前面有一个加号 (+
),而未签名的请求则没有。 在下面的输出中,host2.example.com
没有被签名,而 host1
和 puppet
有:
Output:+ "host1.example.com" (SHA256) 51:D8:7A:EB:40:66:74:FD:0A:03:5D:35:AA:4D:B3:FA:35:99:C2:A8:C9:01:83:34:F6:16:60:BB:46:1F:33:3F "host2.example.com" (SHA256) 3C:A9:96:3A:8D:24:5F:25:DB:FF:67:B5:22:B1:46:D9:89:F1:75:EC:BA:F2:D6:87:70:0C:59:97:11:11:01:E3 + "puppet.example.com" (SHA256) 12:32:47:18:D1:12:85:A6:EA:D4:51:9C:24:96:E2:8A:51:41:8D:EB:E8:7C:EB:47:94:B0:8B:16:16:51:6A:D1 (alt names: "DNS:puppet", "DNS:puppet.localdomain", "DNS:puppet.example.com")
列出未签名的请求
在 Puppet Server 能够与代理节点进行通信和控制之前,它必须签署该特定代理节点的证书。 要查看未签名的请求,请使用 Puppet 服务器中的 puppet cert list
命令:
sudo puppet cert list
这只会列出未签名的请求。 输出将类似于:
Output: "host2.example.com" (SHA256) 9D:49:DE:46:1C:0F:40:19:9B:55:FC:97:69:E9:2B:C4:93:D8:A6:3C:B8:AB:CB:DD:E6:F5:A0:9C:37:C8:66:A0
没有加号 (+
) 表示这些证书尚未签名。 如果没有未签名的请求,您将返回到没有输出的命令提示符。
签署证书请求
签署特定请求
要签署单个证书请求,请使用 puppet cert sign
命令,并使用证书请求中显示的一个或多个主机名。
puppet cert sign host2.example.com
类似于以下示例的输出表明证书请求已被签名:
Output:Notice: Signed certificate request for host1.example.com Notice: Removing file Puppet::SSL::CertificateRequest host2.example.com at '/etc/puppetlabs/puppet/ssl/ca/requests/host1.example.com.pem'
签署所有请求
您可以通过添加 --all
标志来签署所有请求:
sudo puppet cert sign --all
吊销证书
最终,您可能希望从 Puppet 中删除主机或重建主机,然后将其添加回来。 在这种情况下,您需要从 Puppet Master 吊销主机证书。 为此,请使用 clean
操作:
注意:在撤销证书之前创建一个备份/etc/puppetlabs/puppet/ssl/
目录:
sudo cp -R /etc/puppetlabs/puppet/ssl/ /root/
撤销特定证书
您可以使用 puppet cert clean
撤销一个或多个特定证书,方法是提供一个或多个出现在证书中的主机名:
sudo puppet cert clean host1.example.com
吊销证书后,您必须 重新启动 Puppet master 才能使吊销生效。
sudo service puppetserver reload
下次puppet agent
在代理节点上运行时,会向Puppet master发送新的证书签名请求,可以用puppet cert sign
进行签名。 您可以通过以下方式立即触发请求:
sudo puppet agent --test
撤销多个证书
Puppet 不允许批量删除带有 --all
标志的证书,但可以通过提供主机名一次撤销多个证书,并以空格分隔:
sudo puppet cert clean host1.example.com host2.example.com . . .
吊销证书后,您必须 重新启动 Puppet master 以使吊销生效。
sudo service puppetserver reload
结论
本指南介绍了在 Puppet 4.x 版中管理 Puppet 证书的一些常用命令。 还有其他可以与 puppet cert
一起使用的动作和标志。 有关完整列表,请参阅 puppet 证书手册页 。