2016-09-23 73 views
4

我使用chefDK具有以下版本:如何正确配置berks以避免证书问题?

Chef Development Kit Version: 0.17.17 
chef-client version: 12.13.37 
delivery version: master (f68e5c5804cd7d8a76c69b926fbb261e1070751b) 
berks version: 4.3.5 
kitchen version: 1.11.1 

厨师连接到服务器似乎做工精细刀,我可以正确运行的所有命令。但是,当我运行

伯克斯上传

命令我得到这个错误

Ridley::Errors::ClientError: SSL_connect returned=1 errno=0 state=error: certificate verify failed 

我也有这个问题与刀命令,但我解决它,当我在抄我的证书默认路径〜/ .chef/trusted_certs/

我可以解决问题,证书设置环境变量SSL_CERT_FILE指向certif icate文件,但我不能永久,因为如果它被设置我有另一个错误运行命令

伯克斯厂商

/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/httpclient-2.7.2/lib/httpclient/ssl_socket.rb:46:in `connect': SSL_connect returned=1 errno=0 state=error: certificate verify failed (Faraday::SSLError) 

所以基本上我都不断地设置和取消使用,为了变正常工作,这可以想像是非常烦人的。

如何正确配置berkshelf工作?

谢谢, 米歇尔。

+4

可能的重复[我安装了chef-dk并开始使用berkshelf但berks上传失败](http://stackoverflow.com/questions/27833419/i-have-installed-chef-dk-and-started-using -berkshelf-but-berks-upload-failed) – Tensibai

+2

请参阅重复的答案,主要是您必须将您的证书粘贴到cacert.pm中,并将SSL_CERT_FILE设置为此cacert.pem以使两种方法都能正常工作。 – Tensibai

+0

它将证书添加到第二个答案指出的文件中。我不确定这两件事有什么关系。谢谢。 – Mikyjpeg

回答

0

不幸的是,Berkshelf使用自己的HTTP客户端层,所以它不支持Chef的trusted_certs/文件夹。这意味着你必须用$SSL_CERT_FILE$SSL_CERT_DIR来做老派的OpenSSL方式。正如Tensibai提到的那样,您需要为这种或那种OpenSSL构建一个新的信任数据库。这不是一个直接的等价物,但我会提及记录,策略文件工具支持trusted_certs/

+0

我将证书内容添加到/opt/chefdk/embedded/ssl/certs/cacert.pem中,如后所示的Tensibal中所述,它的工作。谢谢。 – Mikyjpeg

+1

这是不推荐的,下次您升级chefdk时会被撤消。 – coderanger

+0

当然,我明白。我希望在下一个版本上会有更新。 – Mikyjpeg

相关问题