Làm cách nào để bao gồm chứng chỉ CA nội bộ của tôi để xác thực các trao đổi SSL trong Chef?


15

Chúng tôi sử dụng Chứng chỉ nội bộ để tạo chứng chỉ máy chủ trong công ty của tôi.

Chúng tôi cũng phải đối phó với một proxy minh bạch khi thực hiện đánh chặn SSL (MITM).

Tôi thường xuyên gặp phải lỗi xác thực SSL do Chef không biết chứng chỉ CA và đôi khi đó là công cụ xung quanh (berkshelf, dao, thậm chí là chính đầu bếp của khách hàng khi nói chuyện với máy chủ lần đầu tiên kể từ khi đầu bếp 12 bật ssl theo mặc định).

Câu hỏi là: làm cách nào để Chef làm cho chứng chỉ CA của tôi nhận được các trao đổi SSL hợp lệ?

Câu trả lời:


13

Có một vài cách để đạt được kết quả:

  1. Đầ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ó

  2. Đầ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)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.