如何管理Puppet4证书

来自菜鸟教程
(重定向自如何管理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 没有被签名,而 host1puppet 有:

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 证书手册页