Sonuca ulaşmak için birkaç yol var:
Şef'in trusted_dir
güvenilir listeye sertifika eklemesine izin vermek için dokümantasyon Bu konuda ayrıntılar bir yeri vardır. CA sertifikanızı bu dizine eklemek sorunu çözecektir. knife
ayrıca kendi dokümantasyonuna göre biraz farklı bir yolda
Şef kendi CA sertifika listesini kullanın /opt/chef/embedded/ssl/certs/cacert.pem
. Güvenmek için CA sertifikanızı bu listenin sonuna ekleyebilirsiniz.
İkinci seçenek, kütüphaneyi kullanan araçların çoğunun CA sertifikanızı bilmesini sağlamak SSL_CERT_FILE
için şefe işaret eden ortam değişkenini dışa aktarmanıza izin verme avantajına sahiptir .cacert.pem
openssl
Şef sunucusunda (veya tarifte hedef olarak kullanılan başka bir sunucuda) kendinden imzalı bir sertifika olması durumunda, knife ssl_fetch
tüm bıçak komutlarının çalışmasına izin verir.
Sunucu sertifikasını yukarıdaki durum 2 için cacert.pem dosyasına eklemek için aşağıdaki komutu kullanabilirsiniz:
# 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 komutu chef-dk'ya dahil edilmiştir, bu yüzden bu pencereler altında da yapılabilir. Yolu c:\opscode\
yerine olarak değiştirin /opt/
. Ortam değişkenini dışa aktarmak için komutunuzda (ortamınıza kalıcı olarak eklemek için set SSL_CERT_FILE=...
ile /P
) komutunu kullanın.