Istnieje kilka sposobów na osiągnięcie wyniku:
Szef kuchni musi trusted_dir
zezwolić na dodanie certyfikatu do listy zaufanych. dokumentacja ma dużo szczegółów na jej temat. Dodanie certyfikatu CA do tego katalogu rozwiązałoby problem. knife
ma to również nieco inną ścieżkę, zgodnie z własną dokumentacją
Szef kuchni korzysta z własnej listy certyfikatów urzędu certyfikacji w /opt/chef/embedded/ssl/certs/cacert.pem
. Możesz dodać certyfikat CA na końcu tej listy, aby mu zaufać.
Druga opcja ma tę zaletę, że pozwala wyeksportować zmienną środowiskową SSL_CERT_FILE
wskazującą na szefa kuchni, cacert.pem
aby większość narzędzi korzystających z openssl
biblioteki mogła poznać twój certyfikat CA.
W przypadku samopodpisanego certyfikatu na serwerze szefa kuchni (lub innym serwerze używanym jako cel w przepisie), knife ssl_fetch
pozwoliłoby na działanie wszystkich poleceń noża.
Aby dodać certyfikat serwera do cacert.pem dla przypadku 2. powyżej, możesz użyć następującego polecenia:
# 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
Polecenie openssl jest zawarte w chef-dk, więc można to zrobić również pod Windows. Zmień ścieżkę na c:\opscode\
zamiast /opt/
. Aby wyeksportować zmienną środowiskową, użyj polecenia set SSL_CERT_FILE=...
(z, /P
aby dodać ją na stałe do środowiska) w swoim poleceniu.