Ошибки сертификата Https для GitHub с использованием git в Windows 7

В настоящее время я получаю эту ошибку:

$ git clone https://github.com/square/haha.git
Cloning into 'haha'...
fatal: unable to access 'https://github.com/square/haha.git/': SSL certificate problem: self signed certificate in certificate chain

Я на машине Windows 7. Я узнал, что сертификат Github подписан DigiCert. Если я посмотрю в доверенных корневых центрах сертификации > Сертификаты, я вижу сертификаты, выпущенные на DigiCert:

DigiCert Assured ID Root CA
DigiCert Assured ID Root G2
DigiCert Assured ID Root G3
DigiCert Global Root CA
DigiCert Global Root G2
DigiCert Global Root G3
DigiCert High Assurance EV Root CA
DigiCert Trusted Root G4

Является ли сертификат GitHub содержащимся в одном из них? Если да, то как его использовать? Если нет, то как я его получу?

Изменить - больше информации:
Я могу установить sslVerify в false, и он работает, но это, конечно, не безопасно.
Я могу использовать git://вместо https://. Это также работает, но не https.

Я НЕ МОЖЕТ ИСПОЛЬЗОВАТЬ SSH, так как в этой среде нет прокси-серверов. Использование ssh:

    $ git clone ssh://github.com/square/haha.git
    Cloning into 'haha'...
    D:/Program Files/Git/usr/bin/bash: -c: line 0: syntax error near unexpected token `<'
    D:/Program Files/Git/usr/bin/bash: -c: line 0: `exec corkscrew <proxyhost> <proxyport> ssh.github.com 443 ~/.ssh/proxy_auth'
    write: Broken pipe
    fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Ответ 1

Идея состоит в том, чтобы загрузить самозаверяющий сертификат и ссылаться на него во время клонирования:

git -c http.sslCAInfo=/path/to/self/signed/cert clone https://github.com/square/haha.git

Например, вы можете использовать iwonbigbro/tools/bin/git-remote-install-cert.sh для:

  • загрузить указанные сертификаты (включая самозаверяющие)

    openssl s_client -connect
    
  • зарегистрируйте этот сертификат:

    git config --global http.sslCAPath "$HOME/.gitcerts"
    

(здесь $HOME/.gitcerts - это каталог, в котором все сертификаты могут быть найдены git)

Этот инструмент, так как он называется git-remote-install-cert.sh, выполняется git remote-install-cert (даже в Windows).

Я бы рекомендовал использовать последнюю PortableGit-2.5.1-64-bit.7z.exe, без сжатия в любом месте (например, в C:\prgs\PortableGit-2.5.1-64-bit).
Затем вызовите C:\prgs\PortableGit-2.5.1-64-bit\git-bash.exe, проверьте $PATH и попробуйте git remote-install-cert.


Пример, в простой сессии DOS, с PATH включая C:\prgs\bin:
(он также включает C:\prgs\PortableGit-2.5.1-64-bit\bin, что означает, что я использую здесь git 2.5.0)

  • создайте файл C:\prgs\bin\git-remote-install-cert, в котором вы скопируете iwonbigbro/tools/bin/git-remote-install-cert.sh (так что нет конечного .sh в конечном локальном файле script имя)
  • Измените строку 111 с mkdir -m 0700 -p ${cert%/*} на mkdir -p ${cert%/*} (нет необходимости менять строку 37)
  • Перейдите в существующее репо.
    Или создайте его и добавьте URL-адрес удаленного источника:
    (Конечно, адаптируйте путь к вашей среде)

    cd C:\Users\vonc\prog
    git init b2d
    cd b2d
    git remote add origin https://github.com/VonC/b2d
    
  • Наконец, вызовите script из этого репо

    C:\Users\vonc\prog\b2d>git remote-install-cert
      Requesting certificate from the server...
      Certificate installed to: /c/Users/vonc/.gitcerts/github.com.crt
    

Это даст вам сертификаты:

C:\Users\vonc\prog\b2d>type C:\Users\vonc\.gitcerts\github.com.crt
-----BEGIN CERTIFICATE-----
MIIF4DCCBMigAwIBAgIQDACTENIG2+M3VTWAEY3chzANBgkqhkiG9w0BAQsFADB1
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMTQwMgYDVQQDEytEaWdpQ2VydCBTSEEyIEV4dGVuZGVk
IFZhbGlkYXRpb24gU2VydmVyIENBMB4XDTE0MDQwODAwMDAwMFoXDTE2MDQxMjEy
MDAwMFowgfAxHTAbBgNVBA8MFFByaXZhdGUgT3JnYW5pemF0aW9uMRMwEQYLKwYB
BAGCNzwCAQMTAlVTMRkwFwYLKwYBBAGCNzwCAQITCERlbGF3YXJlMRAwDgYDVQQF
Ewc1MTU3NTUwMRcwFQYDVQQJEw41NDggNHRoIFN0cmVldDEOMAwGA1UEERMFOTQx
....

Оттуда вы можете, все еще в этом репо, получить с помощью этого сертификата:

cd C:\Users\vonc\prog\b2d
git config http.sslcapath C:\Users\vonc\.gitcerts
git fetch
git checkout master

Ответ 2

попробуйте

git -c http.sslVerify=false clone https://github.com/square/haha.git

или выполнить git config --global http.sslVerify false и снова клонировать