Это бесконечный цикл. Не совсем правильное кодирование, потому что оно не является интуитивным, которое фактически скомпилирует или не выдаст ошибку времени выполнения. Переписывание как while(true) { /* code */ }
было бы более читаемым, чтобы указать бесконечный цикл.
Git для Windows имеет собственное хранилище доверенных сертификатов, которое обычно находится в файле
[Git installdir]\bin\curl-ca-bundle.crt
(например, C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt
; настроено ключ http.sslCAinfo
в [Git installdir]\etc\gitconfig
). [Git installdir]\mingwXX\ssl\certs\ca-bundle.crt
, где XX
обозначает 32
или 64
(например, C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt
; настроено ключ http.sslCAinfo
в C:\ProgramData\Git\config
). Отключение проверки сертификатов (например, установка git config http.sslVerify false
) не является хорошей идеей и может быть чрезвычайно опасной (поскольку вся безопасность проверки отключены и Атаки MitM легко возможны - в зависимости от того, где это установлено, оно применяется для всех новых соединений https).
Чтобы добавить сертификат (может быть, он сам -подписанный тот или иной корневой сертификат) в это хранилище доверия, чтобы автоматически доверять ему, вы должны выполнить следующие шаги:
git config --global http.sslCAinfo "[yourfilename]"
в оболочке cli, чтобы использовать этот сертификат как хранилище доверия. Используйте отдельный магазин доверия сертификатов, который содержит только что загруженный сертификат и все сертификаты из хранилища доверия git, добавив весь контент из файла хранилища системного доверия (путь см. Выше), а затем выполните git config --global http.sslCAinfo "[yourfilename]"
в оболочке cli, чтобы использовать это новый магазин доверия. Обновите файл системного сертификата, добавив содержимое вашего только что сохраненного файла в [path-to-git-trust-store-crt-file]
(например, type [yourfilename] >> [path-to-git-trust-store-crt-file]
в оболочке cli с правами администратора) ИЛИ используя блокнот (сделайте копию файла ca-bundle.crt на desktop, добавьте содержимое файла downlaoded .crt, а затем скопируйте его). Недостаток: изменения могут быть перезаписаны при обновлении git Готово. Теперь этот сертификат находится в хранилище доверия Git для Windows.
Вот что сработало для меня. Создайте папку C:\GitCerts
. Затем загрузите файл Base64 .cer
(следуйте answer, предоставленному MrTux ) в эту папку C:\GitCerts
.
git config --global http.sslCAinfo "C:\GitCerts\MyCert.cer"
MyCert.cer
в Блокноте и оставьте его открытым ca-bundle.crt
в другом блокноте. MyCert.cer
находится в файле ca-bundle.crt
(это должно быть), если не просто скопировать и вставить весь текст из MyCert .cer и добавьте его в конец файла ca-bundle.crt (убедитесь, что вы оставили там всю другую информацию сертификата). ----- НАЧАТЬ СЕРТИФИКАТ - ---
Ваша информация о сертификате здесь
----- СЕРТИФИКАТ КОНЕЦ -----
ca-bundle.crt
). ca-bundle.crt
выполните следующую команду: git config --global http.sslcainfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"
TortoiseGit, вероятно, не использует тот же самый супермаркет Chrome. Я думаю, что Chrome использует системный магазин, Firefox использует его собственный. Я не знаю, что использует TortoiseGit.
На клиенте, если вы установите git config http.sslVerify false
, у вас может быть больше удачи. Вы также можете установить глобально .
git config --global http.sslVerify false
– Gal Bracha
30 January 2014 в 20:38
Для тех, кто в корпорациях, которые получают ошибку самоподписанного сертификата - ниже, является альтернативой.
В корпорациях тот же git-сервер, доступный по протоколу https, обычно также будет доступен по протоколу ssh. Поэтому выберите ssh-параметр url сервера и клонируйте репозиторий как
git clone user@server/project.git
Конечно, открытый ключ (id_rsa.pub
) из вашей папки ~\.ssh
должен будет добавлен на сервер. Таким образом, вы не добавляете сертификат https-сервера в хранилище сертификатов Windows или ключевую цепочку mac (пример ).