Моя компания сменила центр сертификации (это был один центр сертификации, а теперь у нас есть корневой центр сертификации и промежуточный центр сертификации). Я успешно изменил конфигурацию в экземпляре GitLab и перешел к бегуну (то есть в Ubuntu 18.04.5 LTS). Я пытался следовать Документы GitLab безуспешно.
Я следовал подходу по умолчанию здесь в котором говорится «По умолчанию — прочитать системный сертификат», поэтому я добавил сертификаты (CA и Intermediate) в список CA Ubuntu. Вроде все заработало, потому что бегун появился в GitLab.
Я запускаю работу и получаю:
Работа с gitlab-runner 11.5.0 (3afdaba6)
на RUN01 12ccbb74
Использование исполнителя Docker с изображением node:latest ...
Вытягивание узла образа докера: последний...
Использование образа докера sha256:ab773999a02271b25a9f3bce46018fc3ad46a7f922a5e3e8712b6d1c7087c415 для node:latest...
Запуск на runner-12ccbb74-project-73-concurrent-0 через (...)...
00:02
Получение изменений...
00:01
HEAD теперь находится на 60b6860 Обновить зависимость mocha до v9
фатально: невозможно получить доступ к 'https://gitlab-ci-token:xxxxxxxxxxxxxxxxxx@(...).git/': проблема с сертификатом SSL: невозможно получить сертификат эмитента
ОШИБКА: задание не выполнено: код выхода 1
Затем я добавил (в экземпляре GitLab) полную цепочку в файл сертификата, и ошибка изменилась на Проблема с сертификатом SSL: самозаверяющий сертификат в цепочке сертификатов
.
Моя логика*: это работает для Ubuntu, но не для Docker. Поэтому я переехал в Доверие сертификатам TLS для исполнителей Docker и Kubernetes раздел.
Что я пробовал до сих пор, без успеха:
- Я добавил сертификат Root CA в
/etc/gitlab-бегун/сертификаты/ca.crt
.
- Я также пробовал с файлом с корневым ЦС и промежуточным ЦС в цепочке.
- я добавил
Volumes = ["/cache", "/path/to-ca-cert-dir/ca.crt:/etc/gitlab-runner/certs/ca.crt:ro"]
к config.toml
файл. Но я почти уверен, что должен заменить /path/to-ca-cert-dir
с чем-то. Я просто не знаю, что.
* Обновление: когда я установил GitLab Runner, я следовал Установите с помощью репозитория GitLab для Debian/Ubuntu/CentOS/RedHat., поэтому инструкции Docker/K8s не имели смысла. я разместил отвечать о том, как я смог это решить.