답변:
결과를 달성 할 수있는 몇 가지 방법이 있습니다.
Chef는 trusted_dir
신뢰할 수있는 목록에 인증서를 추가 할 수 있도록합니다. 문서는 그것에 대해 세부 사항이 많이 있습니다. 이 디렉토리에 CA 인증서를 추가하면 문제가 해결됩니다. knife
자체 문서 에 따라 약간 다른 경로에 있습니다.
Chef는에서 자체 CA 인증 목록을 사용 /opt/chef/embedded/ssl/certs/cacert.pem
합니다. 이 목록의 끝에 CA 인증서를 추가하여 신뢰할 수 있습니다.
두 번째 옵션은 라이브러리를 사용하는 대부분의 도구가 CA 인증서를 알 수 있도록 SSL_CERT_FILE
chef cacert.pem
를 가리키는 환경 변수를 내보낼 수 있다는 이점이 openssl
있습니다.
chef 서버 (또는 레시피에서 대상으로 사용되는 다른 서버)에 자체 서명 된 인증서의 경우 knife ssl_fetch
모든 나이프 명령이 작동 할 수 있습니다.
위의 경우 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에서도 수행 할 수 있습니다. c:\opscode\
대신 경로를로 변경하십시오 /opt/
. 환경 변수 사용을 내보내려면 set SSL_CERT_FILE=...
(와는 /P
명령에 환경에 영구적으로 추가합니다).