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 đề. knife
theo 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_FILE
trỏ đến đầu bếp cacert.pem
để cho phép hầu hết các công cụ sử dụng openssl
thư 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_fetch
sẽ 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)