Содержание

Git SCM: добавление сертификата удостоверяющего центра

В ОС Windows с установленным Git SCM при клонировании репозитория через HTTPS возникает ошибка SSL certificate problem: self signed certificate in certificate chain.

Ошибка возникает при клонировании с сайтов, сертификат удостоверяющего центра которых не содержится в хранилище, с которым работает Git. Это может быть корпоративный УЦ или, например, DST Root CA X3.

Добавить опцию http.sslVerify=false:

shell-session

$ git -c http.sslVerify=false clone https://example.org
$ git -c http.sslVerify=false push

В конфигурации Git находим путь к хранилищу сертификатов удостоверяющих центров http.sslcainfo:

shell-session

$ 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 нужно переключить git на SChannel:

shell-session

$ git config --global http.sslBackend schannel
  1. How can I make git accept a self signed certificate?
  2. Adding a corporate (or self-signed) certificate authority to git.exe’s store
  3. Fix Git Self Signed Certificate in Certificate Chain on Windows
  4. How do I configure Git to trust certificates from the Windows Certificate Store?