Как мне установить GIT_SSL_NO_VERIFY только для определенных репо? - PullRequest
231 голосов
/ 25 января 2012

Мне нужно использовать git-сервер без надлежащих сертификатов, но я не хочу делать

env GIT_SSL_NO_VERIFY=true git command

каждый раз, когда выполняю операцию gitНо я также хотел бы оставить SSL включенным для других репозиториев git.Есть ли способ сделать это локальным для одного репо?

Ответы [ 11 ]

420 голосов
/ 25 января 2012

Вы можете сделать

git config http.sslVerify false

в вашем конкретном репо, чтобы отключить проверку SSL-сертификата только для этого репо.

91 голосов
/ 28 января 2014

Как то, что сказал Тирумалай, но внутри клонированного хранилища и без --global. То есть.,

  1. GIT_SSL_NO_VERIFY=true git clone https://url
  2. cd <directory-of-the-clone>
  3. git config http.sslVerify false
89 голосов
/ 01 июня 2013

Вы можете сделать следующее

Для одного репо

git config http.sslVerify false

Для всего репо

git config --global http.sslVerify false
11 голосов
/ 04 февраля 2015

Если вы на компьютере с Windows и у вас установлен Git, вы можете попробовать выполнить следующие действия:

  1. Перейдите в папку установки Git, например: C: \ Program Files (x86) \ Git \ etc
  2. Редактировать файл: gitconfig
  3. В разделе [http] добавьте строку: sslVerify = false

    [http]
      sslVerify = false
    
9 голосов
/ 21 февраля 2016

В частности, если вам нужен рекурсивный клон

GIT_SSL_NO_VERIFY=true git clone --recursive https://github.com/xx/xx.git
4 голосов
/ 08 октября 2018

Если вам нужно отключить проверки SSL для одного сервера git, на котором размещено несколько репозиториев, вы можете запустить:

git config --bool --get-urlmatch http.sslverify https://my.bad.server false

(Если вы все еще используете git git config --global http.https://my.bad.server.sslVerify false)

Пояснения из документации , где команда находится в конце, показывают содержимое .gitconfig в следующем виде:

[http "https://my.bad.server"]
        sslVerify = false

Он будет игнорировать любые проверки сертификатов для этого сервера, независимо от того,хранилище.

У вас также есть объяснение в код

4 голосов
/ 13 ноября 2017

Существует простой способ настройки GIT для правильной работы с сервером.Просто добавьте определенный раздел http для вашего сервера git и укажите, какому сертификату (в кодировке Base64) доверять:

~ / .gitconfig

[http "https://repo.your-server.com"]
# windows path use double back slashes
#  sslCaInfo = C:\\Users\\<user>\\repo.your-server.com.cer
# unix path to certificate (Base64 encoded)
sslCaInfo = /home/<user>/repo.your-server.com.cer

Таким образомне иметь больше ошибок SSL и проверить (обычно) самозаверяющий сертификат.Это лучший способ защитить вас от атак «человек посередине».Когда вы просто отключаете ssl-проверку, вы уязвимы для подобных атак.

https://git -scm.com / docs / git-config # git-config-httplturlgt

2 голосов
/ 27 октября 2018

Это работает для меня:

git init
git config --global http.sslVerify false
git clone https://myurl/myrepo.git
0 голосов
/ 15 июля 2019

Этот вопрос продолжает возникать, и я пока не нашел удовлетворительного результата, поэтому вот что сработало для меня (основываясь на предыдущем ответе https://stackoverflow.com/a/52706362/1806760,, который не работает):

Мойсервер https://gitlab.dev с самозаверяющим сертификатом.

Первый запуск git config --system --edit (из командной строки с повышенными привилегиями измените --system на --global, если вы хотите сделать это только для своего пользователя),затем вставьте следующий фрагмент после любых предыдущих [http] разделов:

[http "https://gitlab.dev"]
        sslVerify = false

Затем проверьте, все ли вы сделали правильно:

> git config --type=bool --get-urlmatch http.sslVerify https://gitlab.dev
false
0 голосов
/ 15 февраля 2017

В Linux, если вы вызовете это внутри папки репозитория git:

git config http.sslVerify false

это добавит sslVerify = false в раздел [http] файла config в папке .git,который также может быть решением, если вы хотите добавить это вручную с помощью nano .git/config:

...
[http]
  sslVerify = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...