Проблемы с SSL сертификатами в Docker + Mac + ZScaler

Вопрос или проблема

Кто-нибудь знает, можно ли настроить Docker Desktop для Mac так, чтобы он распознавал ZScaler Root CA, не модифицируя отдельные базовые образы? В данный момент я постоянно получаю

Проблема с SSL сертификатом: невозможно получить локальный сертификат авторитета
как во время сборки контейнеров, так и во время их работы.

Документация, похоже, предполагает, что он должен автоматически распознавать все CA в системном связке ключей, но это, похоже, не происходит.

https://stackoverflow.com/a/36454369 похоже, предполагает, что это можно добавить перманентным образом в саму виртуальную машину Docker, но я не смог найти аналогичный путь для MacOS. Любая информация была бы очень полезна, спасибо!

Ответ или решение

Проблемы с SSL-сертификатами в Docker на Mac с ZScaler

При работе с Docker Desktop на macOS и интеграцией ZScaler могут возникнуть проблемы с SSL-сертификатами. Одна из наиболее распространенных ошибок, с которой сталкиваются пользователи, — это сообщение:

SSL certificate problem: unable to get local issuer certificate

Это сообщение указывает на то, что контейнеры Docker не могут доверять корневому сертификату ZScaler, установленному на вашем компьютере, что приводит к сбоям как в процессе сборки контейнеров, так и во время их выполнения.

Почему возникает эта проблема?

Docker Desktop создает виртуальную машину (VM), в которой фактически запускаются контейнеры. Проблема в том, что хотя система macOS может успешно работать с сертификатами, установленными в вашем системном хранилище, Docker не всегда может «увидеть» эти сертификаты внутри своей виртуальной машины.

Решение проблемы

1. Установка корневого сертификата ZScaler в Docker

Чтобы решить вопрос с сертификатами, следует вручную добавить корневой сертификат ZScaler в Docker при его запуске. Для этого выполните следующие шаги:

  1. Экспортируйте корневой сертификат ZScaler:

    • Откройте «Доступ к ключам» (Keychain Access) на Mac.
    • Найдите сертификат ZScaler, щелкните правой кнопкой мыши и выберите «Экспортировать».
    • Сохраните его в формате .pem.
  2. Импортируйте сертификат в Docker VM:

    • Запустите терминал и выполните команду:
      docker run -it --rm --name temp-container -v /var/run/docker.sock:/var/run/docker.sock alpine /bin/sh
    • Установите необходимые пакеты:
      apk add --no-cache ca-certificates
    • Скопируйте корневой сертификат ZScaler во временный контейнер:
      docker cp /path/to/zscaler-cert.pem temp-container:/etc/ssl/certs/
    • Добавьте сертификат в хранилище доверенных сертификатов:
      update-ca-certificates
  3. Создайте образ на основе временного контейнера с обновленными сертификатами:

    • Сохраните изменения в новый образ:
      docker commit temp-container my-custom-image
  4. Запустите контейнеры на основе нового образа:
    Теперь вы можете использовать my-custom-image как базовый образ для своих контейнеров, и они должны правильно работать с SSL-сертификатами ZScaler.

2. Проверка настроек ZScaler

Кроме того, необходимо убедиться, что настройки ZScaler корректны. В некоторых случаях может потребоваться изменение конфигурации ZScaler, чтобы исключить определенные адреса или добавить дополнительные параметры, которые могут помочь избежать проблем с HTTPS-трафиком.

3. Обновление Docker Desktop

Если вы используете устаревшую версию Docker Desktop, стоит обновить до самой последней версии. С обновлением могут быть внесены исправления, касающиеся обработки сертификатов и совместимости с различными инструментами безопасности.

Заключение

Проблемы с сертификатами SSL в Docker Desktop на macOS в сочетании с ZScaler могут быть решены путем мануального добавления корневого сертификата в хранилище трафика Docker. Следуя предложенным шагам, вы сможете настроить среду разработки таким образом, чтобы избежать ошибок, связанных с отсутствием доверия к сертификатам. Применение этих подходов обеспечит надежную работу контейнеров в условиях использования корпоративных систем защиты.

Если у вас остаются вопросы или возникают проблемы на каком-либо этапе, не стесняйтесь обращаться за поддержкой на специализированные форумы или к технической поддержке ZScaler.

Оцените материал
Добавить комментарий

Капча загружается...