如何管理Puppet 4证书

Puppet是一种配置管理工具,可帮助系统管理员自动执行服务器基础架构的配置,配置和管理。通过客户端验证的HTTPS授予主机和代理之间的通信并加以保护,这需要有效的标识SSL证书。这个Cheat表单样式指南提供了使用`puppet cert`命令来管理这些证书的快速参考。

Puppet Cheat

Puppet是一种配置管理工具,可帮助系统管理员自动执行服务器基础架构的配置,配置和管理。它通常在主服务器管理几个代理节点的配置的主/代理模式下运行。通过客户端验证的HTTPS授予主机和代理之间的通信并加以保护,这需要有效的标识SSL证书。 Puppet master充当管理这些证书的证书颁发机构。 这小抄式指南提供了使用的快速参考puppet cert命令来管理这些证书。 如何使用本指南:
  • 本指南是以自带的命令行片段的备忘单格式
  • 跳转到与您要完成的任务相关的任何部分。
注意:如果puppet是不是在你的路径,你将需要提供完整路径puppet在下面的命令。

列出证书请求

当Puppet代理服务器联机时,如果一切正常配置,他们将向Puppet主机提交证书签名请求。这些请求可以通过审查puppet cert list命令。

列出所有请求,包括signed和unsigned

要查看所有证书请求,签名和未签名,使用--all标志如下:
sudo puppet cert list --all
签名请求是由一个加号(前面+ )和未签名的请求都没有。 在下面的输出, host2.example.com尚未签名,而host1puppet有:
+ "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服务器将能够与代理节点通信和控制代理节点之前,它必须签署该特定代理节点的证书。要查看未签名的请求,使用puppet cert list从Puppet服务器的命令:
sudo puppet cert list
这将只列出未签名的请求。输出将如下所示:
 "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
类似于以下示例的输出表示证书请求已签名:
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中删除主机或重建主机,然后将其添加回来。在这种情况下,您将需要从Pu​​ppet主机撤销主机的证书。要做到这一点,使用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大师,可以用签名puppet cert sign 。您可以立即使用以下内容触发请求:
sudo puppet agent --test

撤销多个证书

Puppet不允许有大量去除证书--all标志,但多个证书可以同时通过提供主机名,用空格分隔予以撤销:
sudo puppet cert clean host1.example.com host2.example.com . . . 
吊销证书后,必须重新启动Puppet大师的撤销生效。
sudo service puppetserver reload

结论

本指南介绍了在Puppet版本4.x中管理Puppet证书的一些常用命令。有迹象表明,可以搭配其他动作和标志puppet cert 。 对于一个完整列表,请参阅puppet cert手册页