ChefでSSL交換を検証するために内部CA証明書を含めるにはどうすればよいですか?


15

私たちは社内の認証局を使用して、私の会社でサーバー証明書を作成しています。

また、SSLインターセプト(MITM)を実行する透過プロキシにも対処する必要があります。

ChefがCA証明書を知らないためにSSL検証エラーが定期的に発生し、時にはツール12

質問:有効なSSL交換を取得するために、CA証明書をChefに認識させるにはどうすればよいですか?

回答:


13

結果を得るにはいくつかの方法があります。

  1. シェフは、trusted_dir証明書を信頼できるリストに追加できるようにします。ドキュメントには、それについての詳細をたくさん持っています。このディレクトリにCA証明書を追加すると、問題が解決します。knifeそれはそれ自身のドキュメントごとにわずかに異なるパスにもあります

  2. Chefは、独自のCA証明書リストをで使用し/opt/chef/embedded/ssl/certs/cacert.pemます。このリストの最後にCA証明書を追加して、信頼することができます。

2番目のオプションには、SSL_CERT_FILEchef 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に永続的に追加します)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.