各种实验

各种实验

我目前有超过 200 个主机可以正常使用我的 Puppet Master(puppet agent -t应用目录)。但是,最近一段时间以来,我无法再添加新主机。除了常规之外,服务器上没有任何变化apt upgrade。我已经尝试降级 Puppetserver 和 Puppet-agent。自动签名已打开。

笔记常用的“删除代理证书并重试”方法不起作用。如果可以的话,我也不想重新生成服务器证书,因为如果这样做,我将需要手动修复数百个代理。

Puppet 服务器

  • Ubuntu 20.04
  • puppetserver 7.15(无中间证书)
  • 木偶代理 7.28

代理

  • 安装了 puppet 7 的各种 Linux/Windows 发行版(多个版本)似乎都受到了影响。

各种实验

Windows 11 代理:

(删除代理的 SSL 目录后)

C:\Windows\system32>puppet agent -t
Info: Certificate revocation is disabled, skipping CRL download
Info: Creating a new RSA SSL key for YYYYY
Info: csr_attributes file loading from C:/ProgramData/PuppetLabs/puppet/etc/csr_attributes.yaml
Info: Creating a new SSL certificate request for YYYYY
Info: Certificate Request fingerprint (SHA256): 49:29:6C:59:21:EE:0B:46:17:58:56:FA:A1:C8:91:1D:77:5A:3A:25:9E:41:00:F1:43:6A:E1:31:39:3C:C3:44
Error: certificate verify failed [unable to get local issuer certificate for CN=XXXX]
Error: certificate verify failed [unable to get local issuer certificate for CN=XXXX]


C:\Windows\system32>puppet ssl verify
Error: Could not run: The client certificate is missing from 'C:/ProgramData/PuppetLabs/puppet/etc/ssl/certs/XXXX.pem'

但是,如果我c:\programdata\puppetlabs\puppet\etc\ssl\certs\ca.pem从工作系统复制:

C:\Windows\system32>puppet ssl verify
Notice: Verified CA certificate 'CN=Puppet CA: XXXXX' fingerprint (SHA256) 51:E9:79:71:13:92:55:63:07:35:95:D4:95:36:5F:4C:7C:6F:80:D4:EF:18:08:C0:FE:D4:4F:9B:27:12
Notice: Verified client certificate 'CN=YYYY' fingerprint (SHA256) DF:A4:66:92:C0:24:B9:ED:42:C6:B9:53:02:25:DB:45:E3:FA:92:EB:AD:60:2D:D1:19:E2:3A:AF:B0:AD

奇怪的是,curl -k https://YYYY:8140/puppet-ca/v1/certificate/ca仅包含一个证书,而工作系统他们的 ca.pem 里有两个

Docker 中的 Ubuntu Jammy

在 docker 中测试这个会更快:

FROM ubuntu:latest
RUN apt update ; apt -y install wget curl
RUN wget 'https://apt.puppet.com/puppet7-release-jammy.deb' && apt install ./puppet7-release-jammy.deb
RUN apt update ; apt -y install puppet-agent
RUN /opt/puppetlabs/puppet/bin/puppet agent -t --server YYYY
 > [5/5] RUN /opt/puppetlabs/puppet/bin/puppet agent -t --server XXXX:
1.447 Error: certificate verify failed [unable to get local issuer certificate for CN=YYYY]
1.448 Error: certificate verify failed [unable to get local issuer certificate for CN=YYYY]

当我尝试上述所有操作时,puppetserver 日志中没有任何有趣的内容。

更奇怪的是:如果我采用一个正在运行的(Windows)代理并将其克隆到一台新机器(并更改主机名),则在下一次 Puppet 运行后,其所有 pem 文件都将为零字节。

ca_crt.pem

我的工作代理有一个ca.pem与 puppetserver 的 /etc/puppetlabs/puppet/ssl/ca.pem 匹配的。但是,curl -k https://YYYY:8140/puppet-ca/v1/certificate/ca返回的是不同的(它返回的内容/etc/puppetlabs/puppetserver/ca/ca_crt.pem)。一旦我将其替换:

cat /etc/puppetlabs/puppet/ssl/certs/ca.pem > /etc/puppetlabs/puppetserver/ca/ca_crt.pem

我在新代理上遇到了不同的错误:

Error: certificate verify failed [unable to get certificate CRL for CN=YYYY]

到目前为止,我还没有找到重新生成 CRL 的方法,但我发现主主机证书(/etc/puppetlabs/puppet/ssl/YYYY.pem)的主机名是错误的。

这留下了一些问题:

  • 为什么突然就坏了?最近什么都没变。
  • 我可以在不破坏每个代理的情况下重新生成主机证书吗?
  • 我可以在 Puppet 7 中重新生成 CRL 吗?我发现木偶 5 说明但不是 7。

谢谢你的指点

相关内容