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

Chef подключение к серверу, кажется, работает хорошо с ножом, как я могу запустить все команды правильно. Но когда я бегу

Berks загрузить

команды я получаю эту ошибку

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

Я имел эту проблему также с помощью команды ножа, но я решил, когда я скопировал свой сертификат в путь по умолчанию ~/.chef/trusted_certs/

Я могу решить проблему с сертификатом, устанавливающим переменную среды SSL_CERT_FILE, указывающую на сертификат icate файл, но я не могу использовать это постоянно, потому что, если он установлен у меня есть другая ошибка, выполнив команду

Berks поставщика

/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 для работы?

Thanks, Michele.

+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-клиентские слои, поэтому он не поддерживает (пока?) Поддержку папки trusted_certs/ шеф-повара. Это означает, что вы должны делать вещи в стиле старой школы OpenSSL с помощью $SSL_CERT_FILE или $SSL_CERT_DIR. Как упоминал Tensibai, вам нужно будет создать новую базу доверия для OpenSSL так или иначе. Это не прямая эквивалентность, но я упоминаю для записи, что инструменты Policyfile поддерживают trusted_certs/.

+0

Я добавил содержимое сертификата в /opt/chefdk/embedded/ssl/certs/cacert.pem, как описано в сообщении Tensibal, и это сработало. Благодарю. – Mikyjpeg

+1

Это не рекомендуется и будет отменен в следующий раз, когда вы обновите chefdk. – coderanger

+0

Конечно, я понимаю. Я надеюсь, что в следующих версиях будет обновление. – Mikyjpeg

 Смежные вопросы

  • Нет связанных вопросов^_^