Có một vài cách để đạt được kết quả:
Đầu bếp có một trusted_dirđể cho phép thêm chứng chỉ vào danh sách đáng tin cậy. các tài liệu có rất nhiều chi tiết về nó. Thêm chứng chỉ CA của bạn vào thư mục này sẽ giải quyết vấn đề. knifetheo nó cũng có một con đường hơi khác theo tài liệu riêng của nó
Đầu bếp sử dụng danh sách chứng nhận CA riêng của mình trong /opt/chef/embedded/ssl/certs/cacert.pem. Bạn có thể thêm chứng chỉ CA của bạn vào cuối danh sách này để tin tưởng nó.
Tùy chọn thứ hai có một lợi thế là cho phép xuất biến môi trường SSL_CERT_FILEtrỏ đến đầu bếp cacert.pemđể cho phép hầu hết các công cụ sử dụng opensslthư viện biết chứng chỉ CA của bạn.
Đối với trường hợp chứng chỉ tự ký trên máy chủ đầu bếp (hoặc máy chủ khác được sử dụng làm mục tiêu trong công thức nấu ăn), knife ssl_fetchsẽ cho phép tất cả các lệnh dao hoạt động.
Để thêm chứng chỉ máy chủ vào cacert.pem cho trường hợp 2. ở trên, bạn có thể sử dụng lệnh sau:
# 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
Lệnh openssl được bao gồm trong Chef-dk, do đó, điều này cũng có thể được thực hiện dưới các cửa sổ, thay đổi bản vá thành c:\opscode\thay vì /opt/và xuất khẩu sử dụng biến môi trường set SSL_CERT_FILE=...( /Pđể thêm nó vĩnh viễn vào môi trường của bạn)