回答:
結果を得るにはいくつかの方法があります。
シェフは、trusted_dir
証明書を信頼できるリストに追加できるようにします。ドキュメントには、それについての詳細をたくさん持っています。このディレクトリにCA証明書を追加すると、問題が解決します。knife
それはそれ自身のドキュメントごとにわずかに異なるパスにもあります
Chefは、独自のCA証明書リストをで使用し/opt/chef/embedded/ssl/certs/cacert.pem
ます。このリストの最後にCA証明書を追加して、信頼することができます。
2番目のオプションには、SSL_CERT_FILE
chef cacert.pem
を指す環境変数をエクスポートして、openssl
ライブラリを使用するほとんどのツールがCA証明書を認識できるという利点があります。
chefサーバー(またはレシピでターゲットとして使用される別のサーバー)の自己署名証明書の場合、knife ssl_fetch
すべてのknifeコマンドが機能します。
上記のケース2のcacert.pemにサーバー証明書を追加するには、次のコマンドを使用できます。
# For a self signed CA certiticate
openssl s_client -showcerts -connect <YOUR_CHEF_SERVER>:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >> /opt/chefdk/embedded/ssl/certs/cacert.pem
# For an internal CA signed certificate:
openssl s_client -showcerts -verify 5 -connect <YOUR_CHEF_SERVER>:443 </dev/null 2>/dev/null | awk '/BEGIN/,/END/{if(/BEGIN/){a++}; certs[a]=(certs[a] "\n" $0)}; END {print certs[a]}' >> /opt/chefdk/embedded/ssl/certs/cacert.pem
export SSL_CERT_FILE=/opt/chefdk/embedded/ssl/certs/cacert.pem
opensslコマンドはchef-dkに含まれているため、これはWindowsでも実行できます。パッチは環境変数useのc:\opscode\
代わりに/opt/
使用し、エクスポートしますset SSL_CERT_FILE=...
(環境/P
に永続的に追加します)。