Ответ 1
Ты можешь сделать
git config http.sslVerify false
в вашем конкретном репо, чтобы отключить проверку сертификата SSL только для этого репо.
Мне нужно использовать сервер git без надлежащих сертификатов, но я не хочу делать
env GIT_SSL_NO_VERIFY=true git command
каждый раз я выполняю операцию git. Но я также хотел бы оставить SSL включенным для других репозиториев git. Есть ли способ сделать это локальным для одного репо?
Ты можешь сделать
git config http.sslVerify false
в вашем конкретном репо, чтобы отключить проверку сертификата SSL только для этого репо.
Как то, что сказал Тирумалай, но внутри клонированного репозитория и без --global
. То есть.
GIT_SSL_NO_VERIFY=true git clone https://url
cd <directory-of-the-clone>
git config http.sslVerify false
Вы можете сделать следующее:
Для одного репо
git config http.sslVerify false
Для всех репо
git config --global http.sslVerify false
Если вы находитесь на компьютере под управлением Windows и установите Git, вы можете попробовать выполнить следующие шаги:
В разделе [http] добавьте строку: sslVerify = false
[http]
sslVerify = false
В частности, если вам нужен рекурсивный клон
GIT_SSL_NO_VERIFY=true git clone --recursive https://github.com/xx/xx.git
Существует простой способ настройки 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, вы уязвимы для таких атак.
Если вам нужно отключить проверки 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
Он будет игнорировать любые проверки сертификатов для этого сервера, независимо от хранилища.
У вас также есть некоторые объяснения в коде
Это работает для меня:
git init
git config --global http.sslVerify false
git clone https://myurl/myrepo.git
для окон, если вы хотите глобальную конфигурацию, затем запустите
git config --global http.sslVerify false
В Linux, если вы вызываете это внутри папки репозитория git:
git config http.sslVerify false
это добавит sslVerify = false
в раздел [http]
файла config
в папке .git
, который также может быть решением, если вы хотите добавить это вручную с помощью nano .git/config
:
...
[http]
sslVerify = false
Этот вопрос продолжает возникать, и я пока не нашел удовлетворительного результата, поэтому вот что сработало для меня (основываясь на предыдущем ответе 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