Добавление самоподписанного SSL-сертификата без отключения полномочий, подписанных
У меня есть корпоративный сервер git, работающий через https с использованием самозаверяющего сертификата. Локальный клон содержит два пульта - источник, указывающий на этот сервер, а другой - на github.
По умолчанию вытаскивание из источника не выполняется:
$ git pull
fatal: unable to access 'https://[email protected]/git/fizzbuzz.git/': SSL certificate problem: self signed certificate
Удаленное управление github отлично работает.
Существует два часто предлагаемых решения:
git config http.sslVerify false
что является плохой идеей, а другая предложила configure git принять конкретный сертификат самоподписанного сервера для конкретного https-сервера:
git config http.sslCAInfo <downloaded certificate>.pem
который фиксирует вытягивание с начала координат, но размыкает пульт github:
$ git pull github
fatal: unable to access 'https://github.com/user/fizzbuzz.git/': SSL certificate problem: unable to get local issuer certificate
Как заставить потянуть с корпоративного сервера работать, не нарушая притяжения с github?
Ответы
Ответ 1
Если вы используете Git 1.8. 5+ (август 2013 г.), вы можете указать http-директивы для каждого URL (!).
В твоем случае:
git config --global http."https://code.example.com/".sslVerify false
#
# or, if not on default 443 port:
#
git config --global http."https://code.example.com:<aPort>/".sslVerify false
Это отключило бы проверку SSL только для code.example.com
, но не для других URL.
Или же:
git config --global http."https://code.example.com/".sslCAInfo <downloaded certificate>.pem
Та же идея: sslCAInfo
будет указывать на <downloaded certificate>.pem
только для URL code.example.com
.
Можно добавить свой сертификат в хранилище сертификатов системы Git, которое с помощью git-for-windows будет находиться в C:\path\to\PortableGit-2.6.1-64-bit\usr\ssl\certs\ca-bundle.crt
.
Это не лучшая практика, если только вам не нужно распространять дистрибутив Git с внутренними сертификатами в нем.
Ответ 2
Как и в версии 2.5.0 для Git для Windows (git -for-windows.github.io), установленный файл сертификата переместился в "C:\Program Files (x86)\Git\mingw32\SSL\сертификаты\ча-bundle.crt". Вы должны добавить свои сертификаты в этот файл.