AWS环境下Puppet运行报主机名与服务端证书不匹配故障求解
问题根因
报错是Puppet服务端证书的可信任域名列表不包含客户端请求使用的puppetmaster短域名,触发SSL证书校验失败。从报错信息可以看到,服务端证书仅支持puppetmaster.us-east-2.compute.internal和puppet两个域名的访问校验。
解决方案
提供两种可落地的方案,按需选择即可:
方案1:修改客户端配置(操作最简单,最快生效)
无需改动服务端,仅调整客户端配置即可:
- 打开客户端
/etc/puppetlabs/puppet/puppet.conf,将server = puppetmaster修改为证书支持的域名server = puppet(你已经在客户端hosts中配置了puppet指向服务端IP,无需额外修改hosts) - 清除客户端旧的证书缓存:
sudo rm -rf /etc/puppetlabs/puppet/ssl/* - 重启Puppet客户端服务,执行测试命令验证连接:
sudo puppet agent -t
方案2:更新服务端证书(适合所有节点统一使用puppetmaster短域名访问的场景)
需要重新生成服务端证书,把puppetmaster加入可信任域名列表:
- 停止服务端puppetserver服务:
sudo systemctl stop puppetserver - 删除服务端原有证书文件:
sudo rm -rf /etc/puppetlabs/puppet/ssl/* - 编辑服务端
/etc/puppetlabs/puppet/puppet.conf,添加/修改[master]段配置:[master] dns_alt_names = puppetmaster.us-east-2.compute.internal,puppet,puppetmaster - 重新生成服务端CA和证书:
sudo puppetserver ca setup - 启动puppetserver服务:
sudo systemctl start puppetserver - 客户端清除旧SSL缓存后,重新执行连接测试即可。
内容的提问来源于stack exchange,提问作者hariraj
相关产品推荐
相关产品推荐

