Puppet - SSL 签名证书设置
当 Puppet 代理软件首次在任何 Puppet 节点上运行时,它会生成一个证书并将证书签名请求发送到 Puppet 主节点。在 Puppet 服务器能够通信和控制代理节点之前,它必须对该特定代理节点的证书进行签名。在以下部分中,我们将介绍如何签名和检查签名请求。
列出当前证书请求
在 Puppet 主节点上,运行以下命令查看所有未签名的证书请求。
$ sudo /opt/puppetlabs/bin/puppet cert list
由于我们刚刚设置了一个新的代理节点,我们将看到一个待批准请求。以下是输出。
"Brcleprod004.brcl.com" (SHA259) 15:90:C2:FB:ED:69:A4:F7:B1:87:0B:BF:F7:ll: B5:1C:33:F7:76:67:F3:F6:45:AE:07:4B:F 6:E3:ss:04:11:8d
开头不包含任何 +(符号),表示证书仍未签名。
签署请求
为了签署在新节点上运行 Puppet 代理时生成的新证书请求,将使用 Puppet cert sign 命令,以及由新配置的服务器生成的证书的主机名需要签名的节点。由于我们拥有 Brcleprod004.brcl.com 的证书,我们将使用以下命令。
$ sudo /opt/puppetlabs/bin/puppet cert sign Brcleprod004.brcl.com
以下将是输出。
Notice: Signed certificate request for Brcle004.brcl.com Notice: Removing file Puppet::SSL::CertificateRequest Brcle004.brcl.com at '/etc/puppetlabs/puppet/ssl/ca/requests/Brcle004.brcl.com.pem'
puppet 服务器现在可以与签名证书所属的节点进行通信。
$ sudo /opt/puppetlabs/bin/puppet cert sign --all
从 Puppet 设置中撤销主机
当需要从设置中移除主机并再次添加时,内核重建配置存在一些条件。这些条件是 Puppet 本身无法管理的。可以使用以下命令完成。
$ sudo /opt/puppetlabs/bin/puppet cert clean hostname
查看所有已签名的请求
以下命令将生成一个带有 +(符号)的签名证书列表,表示请求已获批准。
$ sudo /opt/puppetlabs/bin/puppet cert list --all
以下是其输出。
+ "puppet" (SHA256) 5A:71:E6:06:D8:0F:44:4D:70:F0: BE:51:72:15:97:68:D9:67:16:41:B0:38:9A:F2:B2:6C:B B:33:7E:0F:D4:53 (alt names: "DNS:puppet", "DNS:Brcle004.nyc3.example.com") + "Brcle004.brcl.com" (SHA259) F5:DC:68:24:63:E6:F1:9E:C5:FE:F5: 1A:90:93:DF:19:F2:28:8B:D7:BD:D2:6A:83:07:BA:F E:24:11:24:54:6A + " Brcle004.brcl.com" (SHA259) CB:CB:CA:48:E0:DF:06:6A:7D:75:E6:CB:22:BE:35:5A:9A:B3
完成上述操作后,我们的基础设施已准备就绪,其中 Puppet Master 现在能够管理新添加的节点。