Як включити свій внутрішній сертифікат CA для перевірки обміну SSL в шеф-кухаря?


15

Ми використовуємо внутрішній орган сертифікації для створення сертифікатів сервера в моїй компанії.

Ми також маємо мати справу з прозорим проксі-сервером, що робить перехоплення SSL (MITM).

Я регулярно стикаюся з помилками перевірки SSL через те, що шеф-кухар не знає сертифікат CA, а іноді це інструменти навколо самого шеф-кухаря (berkshelf, ніж; навіть сам клієнт-шеф-кухар, коли вперше розмовляє з сервером, оскільки шеф-кухар 12 дозволяє SSL за замовчуванням).

Питання: Як зробити так, щоб шеф-кухар дізнався про свій сертифікат CA, щоб отримати дійсні біржі SSL?

Відповіді:


13

Є кілька способів досягти результату:

  1. Шеф-кухар trusted_dirповинен дозволити додавати сертифікат до списку надійних. документація має багато подробиць про нього. Якщо додати до цього каталогу свій сертифікат CA, це вирішить проблему. knifeвін також має дещо інший шлях відповідно до власної документації

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.