Є кілька способів досягти результату:
Шеф-кухар 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
щоб додати її постійно до вашого оточення) у вашій команді.