04 03 01 gitlab SSL certificate problem - kropachev/1c-devops-jr GitHub Wiki
При попытке клонировать репозиторий из 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-----)
Создаем каталог для 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Если ошибка не появляется - настройка выполнена корректно.
Создаем каталог для сертификатов Рекомендуемый путь (без пробелов и кириллицы):
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Если ошибка не появляется - настройка выполнена корректно.