Как установить GIT_SSL_NO_VERIFY только для конкретных репозиториев?

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

env GIT_SSL_NO_VERIFY=true git command

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

Ответ 1

Ты можешь сделать

git config http.sslVerify false

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

Ответ 2

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

  • GIT_SSL_NO_VERIFY=true git clone https://url
  • cd <directory-of-the-clone>
  • git config http.sslVerify false

Ответ 3

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

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

git config http.sslVerify false

Для всех репо

git config --global http.sslVerify false

Ответ 4

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

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

    [http]
      sslVerify = false
    

Ответ 5

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

GIT_SSL_NO_VERIFY=true git clone --recursive https://github.com/xx/xx.git

Ответ 6

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

~/.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

Ответ 7

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

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

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

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

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

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

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

Ответ 8

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

git init
git config --global http.sslVerify false
git clone https://myurl/myrepo.git

Ответ 9

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

git config --global http.sslVerify false

Ответ 10

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

git config http.sslVerify false

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

...
[http]
  sslVerify = false

Ответ 11

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

Мой сервер 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