Chef에서 SSL 교환을 확인하기 위해 내부 CA 인증서를 어떻게 포함합니까?


15

내부 인증 기관을 사용하여 회사에서 서버 인증서를 만듭니다.

또한 SSL 차단 (MITM)을 수행하는 투명한 프록시를 처리해야합니다.

Chef가 CA 인증서를 모르고 있기 때문에 SSL 유효성 검사 오류가 정기적으로 발생하며 때로는 Chef 자체를 둘러싼 도구입니다.

질문 : 유효한 SSL 교환을 얻기 위해 Chef에 내 CA 인증서를 알리려면 어떻게합니까?

답변:


13

결과를 달성 할 수있는 몇 가지 방법이 있습니다.

  1. Chef는 trusted_dir신뢰할 수있는 목록에 인증서를 추가 할 수 있도록합니다. 문서는 그것에 대해 세부 사항이 많이 있습니다. 이 디렉토리에 CA 인증서를 추가하면 문제가 해결됩니다. knife자체 문서 에 따라 약간 다른 경로에 있습니다.

  2. Chef는에서 자체 CA 인증 목록을 사용 /opt/chef/embedded/ssl/certs/cacert.pem합니다. 이 목록의 끝에 CA 인증서를 추가하여 신뢰할 수 있습니다.

두 번째 옵션은 라이브러리를 사용하는 대부분의 도구가 CA 인증서를 알 수 있도록 SSL_CERT_FILEchef 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명령에 환경에 영구적으로 추가합니다).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.