2016-09-23 50 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

相關問題