【问题标题】:Berks install SSL_Connect Certification Verify failed (Faraday:SSLError)Berks 安装 SSL_Connect 证书验证失败 (Faraday:SSLError)
【发布时间】:2016-08-06 01:37:25
【问题描述】:

作为我正在尝试编写的食谱(新手)的一部分,我正在使用 berks 安装来自其他食谱的依赖项,最终当我运行 berks install 时,我遇到了证书验证错误。任何人都可以帮助我知道可能出了什么问题以及我如何解决这个问题。谢谢

厨师环境:

Chef Development Kit Version: 0.12.0 chef-client version: 12.8.1 berks version: 4.3.0 kitchen version: 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.

【问题讨论】:

  • @StephenKing 我尝试将我的环境变量设置为 /opt/chefdk/embedded/ssl/certs。当我运行knife client list 时,我收到此错误“警告:找不到刀配置文件警告:无法读取私钥/etc/chef/client.pem:#<:enoent> 错误:无法从 /etc/chef/client.pem 加载您的私钥”
  • 好吧,你还没有configured knife..
  • 绝对是第一个的副本。同样的答案也适用。

标签: chef-infra berkshelf test-kitchen


【解决方案1】:

chefdk 是捆绑在一起的工具集合,虽然你不必使用它,我不用,你可以自己将它们捆绑在一起。

我假设您的chef 存储库中有一个Gemfile。如果您不这样做,那么您可以通过执行bundle init 轻松创建一个。现在使用Gemfile 指定您想使用berkshelf 中的哪个version。一旦你有了它,执行bundle install。如果一切顺利,bundle exec berks configure 应该适合你。您可以将其配置为不使用 ssl,或者只需将 ~/.berkshelf/config.json 放入以下内容:

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

希望这能解决您的问题。

【讨论】:

  • 谢谢@MrRoth。将 ssl 验证关闭为 false 解决了我通过 berkshelf 下载食谱依赖项的问题。
【解决方案2】:

在这里,使用 berks 4.3.5,以下工作:

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

【讨论】:

    猜你喜欢
    • 2015-06-05
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    相关资源
    最近更新 更多