Ada beberapa cara untuk mencapai hasil:
Chef harus trusted_dir
mengizinkan penambahan sertifikat ke daftar tepercaya. yang dokumentasi memiliki banyak rincian tentang hal itu. Menambahkan sertifikat CA Anda ke direktori ini akan menyelesaikan masalah. knife
memilikinya juga di jalur yang sedikit berbeda sesuai dokumentasinya sendiri
Chef menggunakan daftar sertifikat CA sendiri di /opt/chef/embedded/ssl/certs/cacert.pem
. Anda dapat menambahkan sertifikat CA di akhir daftar ini untuk mempercayainya.
Opsi kedua memiliki keuntungan memungkinkan untuk mengekspor variabel lingkungan yang SSL_CERT_FILE
menunjuk ke koki cacert.pem
untuk memungkinkan sebagian besar alat menggunakan openssl
perpustakaan untuk mengetahui sertifikat CA Anda.
Untuk kasus sertifikat yang ditandatangani sendiri pada server chef (atau server lain yang digunakan sebagai target dalam resep), knife ssl_fetch
akan memungkinkan semua perintah pisau bekerja.
Untuk menambahkan sertifikat server ke cacert.pem untuk kasus 2. di atas, Anda dapat menggunakan perintah berikut:
# 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
Perintah openssl termasuk dalam chef-dk, jadi ini dapat dilakukan di bawah windows juga, tambalannya diganti menjadi c:\opscode\
bukan /opt/
dan untuk mengekspor penggunaan variabel lingkungan set SSL_CERT_FILE=...
(dengan /P
menambahkannya secara permanen ke lingkungan Anda)