使用自定义SSL证书引导Chef节点

时间:2015-02-11 18:06:02

标签: chef knife

通过我们的Chef安装(12.0.3),我们从内部私有CA安装了新的SSL证书。但是,一旦我们安装了证书,我们现在在尝试引导新节点时会收到以下错误,例如:

C:\ws\devops\chef\cookbooks>knife bootstrap windows winrm WIN-e9073a7mffd.mydomain.local -N CHEF_TEST_DELETE_ME -x administrator -P password -r "recipe[test]"


WIN-e9073a7mffd.mydomain.local [2015-02-11T17:45:14+00:00] INFO: *** Chef 12.0.3 ***
WIN-e9073a7mffd.mydomain.local [2015-02-11T17:45:14+00:00] INFO: Chef-client pid: 1644
WIN-e9073a7mffd.mydomain.local [2015-02-11T17:45:21+00:00] INFO: Client key c:/chef/client.pem is not present - registering
WIN-e9073a7mffd.mydomain.local [2015-02-11T17:45:21+00:00] ERROR: SSL Validation failure connecting to host: chef.mydomain.local - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
WIN-e9073a7mffd.mydomain.local
WIN-e9073a7mffd.mydomain.local     ================================================================================
WIN-e9073a7mffd.mydomain.local Chef encountered an error attempting to create the client "CHEF_TEST_DELETE_ME"
WIN-e9073a7mffd.mydomain.local     ================================================================================
WIN-e9073a7mffd.mydomain.local
WIN-e9073a7mffd.mydomain.local [2015-02-11T17:45:21+00:00] FATAL: Stacktrace dumped to c:/chef/cache/chef-stacktrace.out
WIN-e9073a7mffd.mydomain.local [2015-02-11T17:45:21+00:00] FATAL: NoMethodError: undefined method `run_id' for nil:NilClass
ERROR: Failed to execute command on WIN-e9073a7mffd.mydomain.local return code 1

如果我手动将CA的证书添加到/opscode/chef/embedded/ssl/certs/cacert.pem文件,则服务器将允许后续的引导尝试。

有关如何解决此问题的任何想法,以便在第一次尝试时正确引导节点?

2 个答案:

答案 0 :(得分:0)

要解决这个问题,你有一些选择。

  • 将您的CA证书添加到trusted_certs目录(请参阅this doc

  • 在knife.rb中将ssl_verify_mode设置为:verify_none(首次运行成功,因为client.rb应该从中完成),然后分发更新的{{1}并使用chef itslef管理目标cacert.pem(chef_client cookbook为此提供了食谱)

答案 1 :(得分:0)

您是否检查过节点和Chef Server之间的时间同步? SSL期望时钟非常接近,结果错误看起来可能相同。