Git SCM: добавление сертификата удостоверяющего центра
В ОС Windows с установленным Git SCM при клонировании репозитория через HTTPS возникает ошибка SSL certificate problem: self signed certificate in certificate chain.
Введение
Ошибка возникает при клонировании с сайтов, сертификат удостоверяющего центра которых не содержится в хранилище, с которым работает Git. Это может быть корпоративный УЦ или, например, DST Root CA X3.
Временное отключение проверки
Добавить опцию http.sslVerify=false:
$ git -c http.sslVerify=false clone https://example.org
$ git -c http.sslVerify=false push
Добавление сертификата УЦ в Git
В конфигурации Git находим путь к хранилищу сертификатов удостоверяющих центров http.sslcainfo:
$ git config --list
...
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
...
Открываем файл C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt в текстовом редакторе. Открываем сертификат нашего УЦ в кодировке Base64 в текстовом редакторе. Копируем сертификат в конец ca-bundle.crt.
Готово. Возвращаемся к работе с репозиторием.
Windows’ Secure Channel
Для использования хранилища сертификатов Windows нужно переключить git на SChannel:
$ git config --global http.sslBackend schannel