04 03 01 gitlab SSL certificate problem - kropachev/1c-devops-jr GitHub Wiki

Ошибка SSL certificate problem: unable to get local issuer certificate

При попытке клонировать репозиторий из GitLab (развернутого в k3s с собственными сертификатами) возникает ошибка:

SSL certificate problem: unable to get local issuer certificate

Git не доверяет корневому центру сертификации (Root CA), которым подписан TLS-сертификат GitLab.

Самый простой вариант, установить root CA в хранилище операционной системы на клиенте. Если по какой-то причине делать этого не хочется, можно добавить сертификат в локальный git.

Для примера используем сертификат

  • Имя файла: onecci-root-ca.crt
  • Тип: Root CA
  • Формат: PEM (должен начинаться с -----BEGIN CERTIFICATE-----)

Linux (Ubuntu)

Создаем каталог для CA Git

mkdir -p ~/.config/git/certs

Копируем сертификат в созданный каталог

cp onecci-root-ca.crt ~/.config/git/certs/

Итоговый путь:

~/.config/git/certs/onecci-root-ca.crt

Указываем Git использовать этот CA (только для нашего GitLab)

git config --global http."https://gitlab.onecci.lan".sslCAInfo \
"~/.config/git/certs/onecci-root-ca.crt"

Проверяем

git ls-remote https://gitlab.onecci.lan/<group>/<repo>.git

Если ошибка не появляется - настройка выполнена корректно.

Windows (Git for Windows)

Создаем каталог для сертификатов Рекомендуемый путь (без пробелов и кириллицы):

C:\Users\<USERNAME>\.git-certs\

Пример

C:\Users\Sergey\.git-certs\

Копируем файл сертификата в созданную паппку и получаем примерно такой итоговый путь

C:\Users\Sergey\.git-certs\onecci-root-ca.crt

Переключаем Git на OpenSSL backend Git for Windows может использовать Windows certificate store (schannel), который игнорирует sslCAInfo.

Проверяем настройку

git config --global --get http.sslBackend

Если значение schannel или пусто - выполняем команду:

git config --global http.sslBackend openssl

Указываем Git использовать этот CA (только для нашего GitLab)

git config --global http."https://gitlab.onecci.lan".sslCAInfo \
"C:/Users/Sergey/.git-certs/onecci-root-ca.crt"

Проверяем

git ls-remote https://gitlab.onecci.lan/<group>/<repo>.git

Если ошибка не появляется - настройка выполнена корректно.

⚠️ **GitHub.com Fallback** ⚠️