如何正确配置 berks 以避免证书问题?
How to properly configure berks to avoid certificate issues?
我正在使用以下版本的 chefDK:
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 与服务器的连接似乎可以用 knife 正常工作,因为我可以 运行 所有命令都正确。但是当我 运行
berks upload
命令我得到这个错误
Ridley::Errors::ClientError: SSL_connect returned=1 errno=0 state=error: certificate verify failed
knife 命令也有这个问题,但我在默认路径 ~/.chef/trusted_certs/
中复制我的证书时解决了这个问题
我可以通过将环境变量 SSL_CERT_FILE 指向证书文件的证书设置来解决问题,但我无法永久使用它,因为如果设置了它,我会遇到另一个错误 运行 命令
berks vendor
/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 才能正常工作?
谢谢,
米歇尔
不幸的是,Berkshelf 使用自己的 HTTP 客户端层,因此它(目前?)不支持 Chef 的 trusted_certs/
文件夹。这意味着您必须使用 $SSL_CERT_FILE
或 $SSL_CERT_DIR
以老式的 OpenSSL 方式进行操作。正如 Tensibai 提到的,您需要以某种方式为 OpenSSL 构建一个新的信任数据库。这不是直接等价的,但我会在记录中提及 Policyfile 工具确实支持 trusted_certs/
.
我正在使用以下版本的 chefDK:
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 与服务器的连接似乎可以用 knife 正常工作,因为我可以 运行 所有命令都正确。但是当我 运行
berks upload
命令我得到这个错误
Ridley::Errors::ClientError: SSL_connect returned=1 errno=0 state=error: certificate verify failed
knife 命令也有这个问题,但我在默认路径 ~/.chef/trusted_certs/
中复制我的证书时解决了这个问题我可以通过将环境变量 SSL_CERT_FILE 指向证书文件的证书设置来解决问题,但我无法永久使用它,因为如果设置了它,我会遇到另一个错误 运行 命令
berks vendor
/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 才能正常工作?
谢谢, 米歇尔
不幸的是,Berkshelf 使用自己的 HTTP 客户端层,因此它(目前?)不支持 Chef 的 trusted_certs/
文件夹。这意味着您必须使用 $SSL_CERT_FILE
或 $SSL_CERT_DIR
以老式的 OpenSSL 方式进行操作。正如 Tensibai 提到的,您需要以某种方式为 OpenSSL 构建一个新的信任数据库。这不是直接等价的,但我会在记录中提及 Policyfile 工具确实支持 trusted_certs/
.