Puppet Agent为何为服务端添加.suse域名后缀且证书校验失败
问题根因
你的报错并非是Agent主动访问puppet-mst.suse,而是你访问puppet-mst时,Puppetserver返回的SSL证书的可信任域名列表中不包含puppet-mst,仅包含puppet-mst.suse、puppet两个域名,因此触发了证书域名校验失败。
该问题的核心诱因是你首次启动Puppetserver时,系统当时的全限定域名为puppet-mst.suse,服务端自动生成的SSL证书仅绑定了当时的域名,后续修改hostname、hosts配置不会自动更新已生成的证书。
解决步骤
- 第一步:停止相关服务
执行以下命令停止Puppetserver和Agent服务,避免文件占用:
systemctl stop puppetserver puppet
- 第二步:清理旧SSL证书
删除已生成的所有旧证书文件:
rm -rf /etc/puppetlabs/puppet/ssl/*
- 第三步:更新Puppet配置
在puppet.conf的[main]段新增dns_alt_names配置,把所有可能用到的访问域名都加入证书白名单,修改后配置如下:
[main] certname = puppet-mst server = puppet-mst dns_alt_names = puppet,puppet-mst,puppet-mst.suse
- 第四步:重启Puppetserver生成新证书
启动Puppetserver,服务会自动根据当前配置生成新的SSL证书:
systemctl start puppetserver
- 第五步:验证证书配置
执行以下命令查看新证书的域名列表,确认包含puppet-mst即可:
openssl x509 -in /etc/puppetlabs/puppet/ssl/certs/puppet-mst.pem -text | grep DNS
- 第六步:测试Agent连接
再次执行Agent测试命令,即可正常完成证书签名流程:
puppet agent --test --verbose
内容的提问来源于stack exchange,提问作者EisenWang
相关产品推荐
相关产品推荐

