将Berkshelf与自定义CA证书一起使用



我有一个定制的Chef服务器,该服务器具有由我们自己的CA服务器签名的TLS证书。我将CA证书添加到.chef/trusted_certs,现在knife ssl verify工作正常。

但当我尝试使用Berksfile上传烹饪书时,我遇到了以下错误:

$ berks upload
E, [2016-03-26T15:02:18.290419 #8629] ERROR -- : Ridley::Errors::ClientError: SSL_connect returned=1 errno=0 state=error: certificate verify failed
E, [2016-03-26T15:02:18.291025 #8629] ERROR -- : /Users/chbr/.rvm/gems/ruby-2.3-head@global/gems/celluloid-0.16.0/lib/celluloid/responses.rb:29:in `value'

我曾尝试将CA证书附加到/ops/chefdk/embedded/ssl/certs/cabundle.pem,但没有任何区别。

创建一个自定义CA捆绑文件,然后在环境中设置$SSL_CERT_FILE(如果要使用该格式,则设置$SSL_CERT_DIR)。

使用--no-ssl-verify。Berkshelf不尊重厨师信任的证书。

或者,可以在berks配置文件中指定此选项。

不要忽略证书验证。这不是最安全的选择,尤其是关于攻击者最近在Node Package Manager等地方插入恶意软件的消息。您可以轻松地将Berkshelf配置为信任与Chef信任的相同证书。

在您的~/chef repo/.berkshelf/config.json文件中,确保ca_path设置为指向您的chef可信证书,如下所示(假设您的chef repo位于~/cheff repo)

{
  "ssl": {
    "verify": true,
    "ca_path": "~/chef-repo/.chef/trusted_certs"
  }
}

然后,用刀来管理你的厨师证书(像这样):

$ cd ~/chef-repo
$ knife ssl fetch https://supermarket.chef.io/
$ knife ssl fetch https://my.chef.server.example.org/

您信任Chef的所有证书也将受到Berks的信任。

最新更新