Chef infra Berks安装SSL_Connect认证验证失败(法拉第:SSLError)

Chef infra Berks安装SSL_Connect认证验证失败(法拉第:SSLError),chef-infra,berkshelf,test-kitchen,Chef Infra,Berkshelf,Test Kitchen,作为我试图编写的一本烹饪书(新手)的一部分,我使用berks来安装来自其他烹饪书的依赖项,最终当我运行berks install时,我遇到了证书验证错误。有谁能帮我知道出了什么问题以及我如何解决这个问题。谢谢 厨师环境: Chef开发工具包版本:0.12.0 厨师长客户端版本:12.8.1 伯克斯版本:4.3.0 厨房版本:1.6.0 伯克大陆架 berks-v 4.3.0 berks安装-错误 /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/http

作为我试图编写的一本烹饪书(新手)的一部分,我使用berks来安装来自其他烹饪书的依赖项,最终当我运行
berks install
时,我遇到了证书验证错误。有谁能帮我知道出了什么问题以及我如何解决这个问题。谢谢

厨师环境:

Chef开发工具包版本:0.12.0
厨师长客户端版本:12.8.1
伯克斯版本:4.3.0
厨房版本:1.6.0

伯克大陆架

berks-v
4.3.0

berks安装-错误

/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/httpclient-2.7.1/lib/httpclient/ssl_socket.rb:46:in `connect': SSL_connect returned=1 errno=0 state=error: certificate verify failed (Faraday::SSLError)
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/httpclient-2.7.1/lib/httpclient/ssl_socket.rb:46:in `ssl_connect'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/httpclient-2.7.1/lib/httpclient/ssl_socket.rb:24:in `create_socket'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/httpclient-2.7.1/lib/httpclient/session.rb:739:in `block in connect'
from /opt/chefdk/embedded/lib/ruby/2.1.0/timeout.rb:91:in `block in timeout'
from /opt/chefdk/embedded/lib/ruby/2.1.0/timeout.rb:101:in `call'
from /opt/chefdk/embedded/lib/ruby/2.1.0/timeout.rb:101:in `timeout'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/httpclient-2.7.1/lib/httpclient/session.rb:735:in `connect'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/httpclient-2.7.1/lib/httpclient/session.rb:497:in `query'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/httpclient-2.7.1/lib/httpclient/session.rb:170:in `query'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/httpclient-2.7.1/lib/httpclient.rb:1238:in `do_get_block'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/httpclient-2.7.1/lib/httpclient.rb:1021:in `block in do_request'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/httpclient-2.7.
是一个捆绑在一起的工具集合,虽然您不必使用它,但我不需要,您可以自己将它们捆绑在一起

我假设您的
chef
存储库中有一个
Gemfile
。如果没有,则可以通过执行来轻松创建一个。现在使用
Gemfile
指定要使用哪一个。一旦你拥有了它,执行它。如果一切顺利,
bundle exec berks configure
应该适合您。您可以将其配置为不使用ssl,也可以将
~/.berkself/config.json
与以下内容一起放置:

{
  "ssl": {
    "verify": false
  }
}

希望这能解决您的问题。

在这里,使用berks 4.3.5,以下功能起到了作用:

{
  "ssl": {
    "verify": false
  },
  "ssl.verify": false
}

可能重复@StephenKing我尝试将环境变量设置为/opt/chefdk/embedded/ssl/certs。当我运行
knife-client list
时,我收到了这个错误“警告:找不到knife配置文件警告:无法读取私钥/etc/chef/client.pem:#错误:您的私钥无法从/etc/chef/client.pem加载”嗯,您没有..肯定是第一个私钥的副本。同样的答案也适用。谢谢@MrRoth。将ssl验证拒绝为false解决了我通过Berkshell下载cookbook依赖项的问题。