将 Berkshelf 与自定义 CA 证书结合使用
Use Berkshelf with custom CA certificate
我在本地有一个自定义 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
,但没有任何区别。
使用--no-ssl-verify
。 Berkshelf 不尊重厨师的可信证书。
或者,有一个选项可以在 berks 配置文件中指定它。
创建自定义 CA 捆绑文件,然后在您的环境中设置 $SSL_CERT_FILE
(或 $SSL_CERT_DIR
,如果您想使用该格式)。
不要忽略证书验证。这不是最安全的选择,尤其是关于攻击者最近在节点包管理器等地方插入恶意软件的消息。您可以轻松地将 Berkshelf 配置为信任您信任 Chef 的相同证书。
在您的 ~/chef-repo/.berkshelf/config.json 文件中,确保 ca_path 设置为指向您的 Chef 信任证书,像这样(假设您厨师回购位于 ~/chef-repo)
{
"ssl": {
"verify": true,
"ca_path": "~/chef-repo/.chef/trusted_certs"
}
}
然后,使用 knife 来管理您的 Chef 证书(像这样):
$ cd ~/chef-repo
$ knife ssl fetch https://supermarket.chef.io/
$ knife ssl fetch https://my.chef.server.example.org/
您信任 Chef 的所有证书也将被 Berks 信任。
我在本地有一个自定义 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
,但没有任何区别。
使用--no-ssl-verify
。 Berkshelf 不尊重厨师的可信证书。
或者,有一个选项可以在 berks 配置文件中指定它。
创建自定义 CA 捆绑文件,然后在您的环境中设置 $SSL_CERT_FILE
(或 $SSL_CERT_DIR
,如果您想使用该格式)。
不要忽略证书验证。这不是最安全的选择,尤其是关于攻击者最近在节点包管理器等地方插入恶意软件的消息。您可以轻松地将 Berkshelf 配置为信任您信任 Chef 的相同证书。
在您的 ~/chef-repo/.berkshelf/config.json 文件中,确保 ca_path 设置为指向您的 Chef 信任证书,像这样(假设您厨师回购位于 ~/chef-repo)
{
"ssl": {
"verify": true,
"ca_path": "~/chef-repo/.chef/trusted_certs"
}
}
然后,使用 knife 来管理您的 Chef 证书(像这样):
$ cd ~/chef-repo
$ knife ssl fetch https://supermarket.chef.io/
$ knife ssl fetch https://my.chef.server.example.org/
您信任 Chef 的所有证书也将被 Berks 信任。