Є кілька способів досягти результату:
Шеф-кухар trusted_dirповинен дозволити додавати сертифікат до списку надійних. документація має багато подробиць про нього. Якщо додати до цього каталогу свій сертифікат CA, це вирішить проблему. knifeвін також має дещо інший шлях відповідно до власної документації
Шеф-кухар використовує свій власний список сертифіката ЦА в /opt/chef/embedded/ssl/certs/cacert.pem. Ви можете додати свій сертифікат CA в кінці цього списку, щоб довіряти йому.
Другий варіант має перевагу в тому, що ви можете експортувати змінну середовища SSL_CERT_FILEвказівку на шеф-кухаря, cacert.pemщоб дозволити більшість інструментів, що використовують opensslбібліотеку, знати ваш сертифікат CA.
У випадку самостійного підписання сертифікату на сервері шеф-кухаря (або іншого сервера, який використовується як ціль у рецепті), knife ssl_fetchдозволить працювати всі команди ножа.
Щоб додати сертифікат сервера до cacert.pem для випадку 2. вище, ви можете скористатися такою командою:
# 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щоб додати її постійно до вашого оточення) у вашій команді.