Корпоративная сеть: `ddev composer create` приводит к "ошибке сертификата ssl"

Я запускаю ddev под wsl2. Я за прокси zscaler. Мне удалось скопировать сертификат zscaler в ubuntu «/usr/local/share/ca-certificates» и запустить «sudo update-ca-certificates». После этого я смог установить homebrew и ddev. Однако, когда я создал сайт drupal 9 и использовал команду "ddev composer create "drupal/recommended-project" --no-install", это дало мне «ubuntu curl: (60) проблема с сертификатом ssl: самозаверяющий сертификат в цепочке сертификатов». Я также попытался скопировать сертификат zscaler в веб-контейнер, но все равно получил ту же проблему. Как мне обойти эту проблему?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
38
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Это проблема, которую вам и вашему ИТ-отделу придется решать. Я предполагаю, что у вас есть не только прокси-сервер, но и используемая вами VPN, которая, вероятно, выполняет глубокую проверку пакетов и имеет заменяющий ЦС для доверенного ЦС, который использует остальная часть Интернета.

Если у вас не есть VPN, но только прокси, вам нужно правильно настроить докер для прокси, см. https://github.com/drud/ddev-contrib/tree/master/recipes/proxy, но, поскольку вы получаете ненадежные сертификаты, мне кажется, что происходит нечто большее, чем просто прокси.

Если ваш ИТ-отдел может предоставить вам замену crt CA, вы можете поместить его в .ddev/web-build и добавить .ddev/web-build/Dockerfile следующим образом:

ARG BASE_IMAGE
FROM $BASE_IMAGE
COPY <yourcert>*.crt /usr/local/share/ca-certificates/
RUN update-ca-certificates --fresh

Я уже сделал это, но это не работает.

kevin 24.03.2022 08:56

Я полагаю, у вас все будет хорошо, если вы в обычной сети. Если это возможно, подключите свою машину к обычной сети без прокси или VPN и посмотрите, все ли работает. Затем вернитесь оттуда.

rfay 24.03.2022 19:56

Я смог сделать это хорошо на моем персональном компьютере. У меня нет проблем с настройкой ddev на моем персональном компьютере.

kevin 24.03.2022 21:37

ddev в моей корпоративной сети — другая история. Первоначально я не смог установить доморощенный, так как он не работал с curl ssl, но я смог понять это и установил прокси-сертификат zscaler в Ubuntu. После этого я смог установить homebrew, а затем ddev. Но теперь следующим шагом будет использование ddev для настройки проекта drupal 9. Снова произошел сбой curl ssl, так как команда "ddev composer create ...." curl to github из веб-контейнера для захвата шаблона drupal. Итак, я попробовал то, что вы упомянули выше в отношении Dockerfile, где я заменил <yourcert> сертификатом zscaler, но все равно потерпел неудачу.

kevin 24.03.2022 21:49

Я вернулся в свой ЦС в Windows и нашел еще один сертификат под названием «certadmin». Мне удалось скопировать этот сертификат в папку веб-сборки и обновить Dockerfile, и теперь все работает.

kevin 24.03.2022 22:38

Спасибо, пожалуйста, добавьте ответ, который полностью описывает ваше решение!

rfay 25.03.2022 15:28
Ответ принят как подходящий
  1. Экспорт сертификатов прокси-сервера zscaler и certadmin из доверенного ЦС Windows в формат .CER в моей сетевой среде.

  2. Используйте OpenSSl и преобразуйте их из формата .CER в формат .CRT.

    • openssl x509 -inform DER -in zscaler.cer -out zscaler.crt
    • openssl x509 -inform DER -in certadmin.cer -out certadmin.crt
  3. Скопируйте эти файлы в папку /usr/local/share/ca-certificates в Ubuntu.

    sudo cp /mnt/c/certificates/zscaler.crt /mnt/c/certificates/certadmin.crt /usr/local/share/ca-certificates

  4. Бежать

    sudo update-ca-certificates

  5. Следуйте инструкциям на сайте документации DDEV, чтобы установить Homebrew, gcc, ddev и xdg-utils.

  6. Снова следуйте инструкциям на сайте документации DDEV, чтобы настроить проект drupal 9.

  7. Перед выполнением шага: ddev start скопируйте сертификаты из шага №3 в мою папку sampleprojectfolder/.ddev/web-build.

    cd /home/kevin/my-drupal9-site/.ddev/web-build && sudo cp /mnt/c/certificates/zscaler.crt /mnt/c/certificates/certadmin.crt .
    
  8. Находясь cd в папке веб-сборки, скопируйте из нее образец файла докера и назовите его «Dockerfile».

    cp Dockerfile.example Dockerfile

  9. Измените содержимое Dockerfile nano Dockerfile следующим образом, чтобы при создании контейнеров ddev также загружал сертификаты в веб-контейнер.

    ARG BASE_IMAGE
    FROM $BASE_IMAGE
    COPY *.crt /usr/local/share/ca-certificates/
    RUN update-ca-certificates --fresh
    
  10. Бежать

    ddev start

  11. Выполните остальные шаги, чтобы создать проект drupal 9 из документации DDEV.

Другие вопросы по теме