Git pull / push - tidak dapat mengakses HTTPS, rutinitas SSL sepertinya tidak aktif

105

Saya menggunakan Git (dan GitHub) setiap hari dan semuanya telah berfungsi dengan baik dan tiba-tiba, saya tidak dapat lagi berkomunikasi dengan repositori GitHub jarak jauh saya melalui perintah Git saya. Ketika saya mencoba untuk "Git pull", muncul error berikut:

fatal: tidak dapat mengakses ' https://github.com/snahrvar/eatibl.git/ ': error: 1407742E: SSL rutin: SSL23_GET_SERVER_HELLO: versi protokol peringatan tlsv1

Jadi, saya menguji di beberapa repositori, dan saya mendapatkan kesalahan yang sama di komputer saya. Saya meminta orang lain berinteraksi dengan repositori yang sama, dan itu berfungsi dengan baik untuk mereka. Sebelum kesalahan ini, saya melakukan "npm install sharp" pada sebuah proyek dan akhirnya gagal, dan saya curiga ini mungkin telah mengacaukan beberapa pengaturan SSL, tapi itu tebakan liar!

Pikiran atau panduan umum apa pun akan sangat dihargai!

Jika itu membantu sama sekali, inilah lingkungan saya:

  • Versi Git: 1.9.4.msysgit.2
  • Versi Windows: Windows 8.1
Shayan Nahrvar
sumber
Masalah yang sama di sini ?
LYES - CHIOUKH
Sama di sini dengan git 1.9.5.msysgit.1
Maxime Helen
Saya mengalami masalah yang sama
kejar cabrera
11
Saya yakin perubahan inilah yang menyebabkan kesalahan: github.com/blog/2507-weak-cryptographic-standards-removed
Dan H
Saya memiliki masalah yang sama dan menginstal desktop Github dan semuanya bekerja dengan baik!
Damian

Jawaban:

69

Memperbarui TortoiseGit dan GCM tidak membantu saya, tetapi memperbarui Git itu sendiri membantu, sesuai saran @ Frederic di komentar.

https://git-scm.com/download/win

Untuk memastikan versi baru Git diinstal dengan benar dan tidak bertentangan dengan instalasi sebelumnya (ini mungkin, jika Anda menggunakan TortoiseGit, karena ini akan menggunakan folder berbeda dan mengacaukan variabel PATH), hapus instalasi Git yang ada sebelum menginstal Git yang diperbarui . Mungkin juga perlu menginstal dengan hak administrator.

feos
sumber
Saya tidak yakin apa yang terjadi dengan versi terakhir git untuk mulai menampilkan kesalahan ini hari ini, tetapi jawaban ini untuk saya. Saya mengambil instalasi baru (versi 2 hari) dan saya kembali dan tidak menjalankan kesalahan ssl. Bicara tentang jarum di tumpukan jerami.
JeffBaumgardt
3
Bagian yang paling menarik adalah github sendiri tidak menyebutkan ini, meskipun kemungkinan terkait dengan pembaruan terkini mereka. Pencarian google cepat mengenai masalah serupa dengan host kode lain menyalahkan OpenSSL.
feos
Ya, hanya perlu memperbarui ke versi terbaru! Terima kasih: D
Shayan Nahrvar
1
@gath Anda mungkin memiliki 2 instalasi git yang tidak kompatibel, coba hapus instalan yang sudah ada sepenuhnya, lalu instal ulang git dari awal. Tetapi kesalahan Anda berbeda stackoverflow.com/questions/3778042/…
feos
5
Bagi saya "menghapus instalasi Git yang ada sebelum menginstal Git yang diperbarui" adalah kunci dari seluruh bencana ini.
Richard Ockerby
20

Anda mungkin mengalami ketidakcocokan dengan penghentian GitHub atas protokol enkripsi SSL yang lemah:

Pemberitahuan penghapusan standar kriptografi yang lemah

Solusinya akan bervariasi, tetapi untuk Windows Anda mungkin perlu memutakhirkan manajer kredensial Git ke 1.14.0

https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0

Anthony L
sumber
1
Apakah mereka akan terus mendukung pengelola kredensial Git bawaan untuk windows: wincred. Saya mendapatkan kesalahan yang sama dengan alat itu
Max Hartshorn
Jawaban ini membantu memberikan konteks tentang perubahan tersebut, tetapi solusi dari @feos adalah solusi yang berhasil untuk saya (Windows 10, TortoiseGit)
Eric Farraro
14

Jika Anda menggunakan Android Studio atau IntelliJ IDEA, memperbarui Git ke versi terbaru dan mengubah jalur untuk menunjuk ke versi baru akan menyelesaikan masalah bagi saya.

Masukkan deskripsi gambar di sini

humazed
sumber
1
Ini juga berhasil untuk saya: instal Git versi terbaru dan arahkan IntelliJ IDEA ke sana.
pengguna1825866
8

Menggunakan TortoiseGit, saya melakukan semua perbaikan / pembaruan lain yang diberikan untuk ini dan masih belum berhasil. Saya menemukan ini: Tidak dapat melakukan git push / pull / fetch tiba-tiba

Pengaturan TortoiseGit saya untuk Git untuk Windows yang ditunjukkan oleh jalur Git.exe C:\Program Files (x86)\Git\bin. Saya mengubahnya menjadi C:\Program Files\Git\bindan sekarang berfungsi lagi.

MJWitte
sumber
3
Saya memeriksanya menggunakan Check nowtombol dalam Generaldialog pengaturan, dengan x86jalur yang saya dapatkan git version 1.9.5.msysgit.1, setelah mengubah ke C:\Program Files\Git\binSaya telah mendapatkan git version 2.16.2.windows.1dan dengan jalur itu semuanya berfungsi dengan baik.
berkembang
8

Inilah yang berhasil bagi saya.

  1. Instal Git versi terbaru dari sini: https://git-scm.com/download/win
  2. Di TortoiseGit, masuk ke menu PengaturanUmumJalur Git.exe - ubah dari jalur 32-bit ke 64-bit: C: \ Program Files (x86) \ Git \ bin → C: \ Program Files \ Git \ bin
dgundersen.dll
sumber
Poin yang bagus. Jika ada orang (seperti saya) yang telah menggunakan versi lama Windows 32-bit, pastikan untuk menggantinya di PATH.
AG
Ini menghemat waktu saya @dgundersen
Tejas Mehta
8

Memperbarui Git tidak cukup dalam situasi saya. Setelah debugging selama beberapa jam, ini adalah perbaikan saya:

C:\wamp64\www\maandlastenmanager> git config http.sslVersion
tslv1.0

C:\wamp64\www\maandlastenmanager> git config http.sslVersion tlsv1.2

C:\wamp64\www\maandlastenmanager> git config http.sslVersion
tslv1.2
Raymond van Rijs
sumber
Ini memecahkan masalah untuk saya, dan pada pengaturan yang sama sekali berbeda (Mac OS X). curlmasih memberi saya pesan, yang membuat saya bertanya-tanya apakah ada pengaturan seperti itu yang berlaku untuk semua aplikasi ssl, tidak hanya git...
chesterbr
Yang mana dari baris ini?
Dmitri Zaitsev
2

Saya mengalami masalah yang sama saat menarik kode dari GitHub di terminal Visual Studio Code saya . Saya menemukan saran dalam jawaban sebelumnya berguna dan meretas solusi bersama-sama mengikuti langkah-langkah di bawah ini:

Repositori ini cukup berguna.

Saya harap ini membantu seseorang.

Bolu Ajibawo
sumber
2

TL; DR: git config --system http.sslbackend schanneldan matikan pemeriksaan HTTPS github.comdi perangkat lunak antivirus Anda


Saya menggunakan baris perintah Git di Windows 8 x64. Selain itu, perangkat lunak antivirus saya memeriksa lalu lintas HTTPS secara default. Seperti orang lain dalam menjawab pertanyaan ini, saya menggunakan GitHub hampir setiap hari.

  • Memperbarui Git - tidak membantu - karena saya menggunakan OpenSSL (lihat di bawah)
  • Memperbarui manajer kredensial - tidak membantu

Lalu saya mulai bermain dengan mengganti backend SSL:

git config --system http.sslbackend openssl ----------------vs------------------ git config --system http.sslbackend schannel dan perangkat lunak antivirus memeriksa lalu lintas SSL:

  1. OpenSSL, HTTPS memeriksa ON: error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01
  2. OpenSSL, cek HTTPS MATI: SSL certificate problem: unable to get local issuer certificate
  3. SecureChannel, HTTPS memeriksa ON: schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.
  4. SecureChannel, HTTPS memeriksa OFF: bekerja dengan baik

NB: Daripada menggunakan baris perintah, Anda dapat menginstal ulang Git terbaru, memilih "Gunakan pustaka validasi SSL Windows asli".

PPS: Kasus (3) tampaknya merupakan bug di pustaka schannel, karena sertifikat MITM yang digunakan perangkat lunak antivirus saya masuk daftar putih di komputer saya.

Mike Makarov
sumber
Saat menginstal ulang git, saya benar-benar menghapus instalasi lamanya, dan untuk instalasi baru, saya memilih OpenSSL, jadi saya rasa itu menginstal ulang dari awal. Tapi saya tidak punya antivirus. Apakah penginstalan ulang backend SSL mengubah sesuatu untuk Anda, atau Anda tidak melakukannya?
feos
@feos Ya, ini hanya bekerja untuk saya dalam mode non-OpenSSL. Plus, saya harus mematikan pemeriksaan https di AV.
Mike Makarov
Masih belum jelas bagi saya, apakah Anda menginstal ulang SSL atau tidak?
feos
@ Tidak, saya tidak. Saya tidak berpikir seseorang dapat "menginstal ulang SSL" di Windows. Jadi tidak yakin apa yang Anda maksud dengan ini. Saat Anda menginstal klien git terbaru, Anda memiliki opsi untuk memilih - OpenSSL backend atau Windows terintegrasi. Saya memilih OpenSSL. Itu tidak berhasil dan saya mengubah backend melalui konfigurasi. Semoga ini menjelaskan.
Mike Makarov
Ya, terima kasih. Saya pikir Anda mengalami masalah yang sama sekali berbeda dari OP.
feos
1

Di macOS, Anda dapat menginstal yang terbaru gitmelalui Homebrew.

SEBAGAI
sumber
Sayangnya ini tidak berhasil untuk saya di Mac OS X 10.7.5 (Lion) - mendapat kesalahan yang sama. Saya kemudian mencoba menginstal Homebrewdari awal - tampaknya menarik22. error: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version while accessing https://github.com/Homebrew/brew/info/refs?service=git-upload-pack fatal: HTTP request failed
Setaa
@ Seta, Nah, boleh coba instal secara manual dari halaman Rilis? Mereka tampaknya telah membahas tangkapan itu22 di 1.5.5
AS
1

Sama untuk saya dengan Git 1.9.5.msysgit.1 juga. Saya mencoba menginstal https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0 , tetapi tidak ada perubahan.

Sebenarnya, tidak ada yang terjadi setelah instalasi; mungkin saya melakukan sesuatu yang salah? (Itu mungkin tidak membantu untuk pertanyaan awal, tapi untuk orang lain, ya!)

Frederic
sumber
6
Hanya untuk membantu komunitas, saya baru saja memperbarui git (untuk windows) (dengan git-scm.com/download/win ) dan itu menyelesaikan masalah!
Frederic
2
Di bawah Windows 7 Pro / 64, saya memutakhirkan git menggunakan tautan tautan git-scm.com/download/win. Ini menginstal git ke c: \ program files \ git daripada c: \ program files (x86) \ git. Versi saya berubah dari 1.9.5.msysgit.1 menjadi 2.16.2.windows.1 dan ketika saya mengkonfigurasi WebStorm untuk menunjuk ke versi yang lebih baru, 1407742E misterius : rutinitas SSL: SSL23_GET_SERVER_HELLO: kesalahan versi protokol peringatan tlsv1 berhenti.
CODE-REaD
FYI, pengaturan saya adalah:C:\Program Files\Git\etc> cat install-options.txt Editor Option: Notepad++ Path Option: Cmd Plink Path: C:\Program Files (x86)\PuTTY\plink.exe SSH Option: Plink CURL Option: OpenSSL CRLF Option: CRLFAlways Bash Terminal Option: MinTTY Performance Tweaks FSCache: Enabled Use Credential Manager: Enabled Enable Symlinks: Disabled
KODE-REaD
Anda harus mendorong Anda untuk meningkatkan jawaban.
Edward Thomson
1

Ya, saya mengalami masalah yang sama pada permintaan tarik hari ini dan solusinya adalah memperbarui Git dengan mengunduh Git versi 64-bit terbaru (2.16.2) untuk Windows. Ini dirilis 5 hari yang lalu, pada 2018-02-20.

Thomas M
sumber
1

Komentar oleh @andw berhasil untuk saya:

Perbarui Git versi 1.9.5 ke 2.15.1 menggunakan langkah-langkah berikut:

Di sourceTree, masuk ke menu ToolsOptionsGitUse Embedded Git .

Jalan buntu
sumber
1

Solusi cepatnya adalah git config --global http.sslVerify true , tetapi tidak disarankan karena itu mengalahkan tujuan menggunakan SSL.

Cara kedua dan lebih baik adalah dengan menggunakan kunci ssh daripada URL SSL.

Langkah-langkah untuk menghasilkan kunci SSH

o Jalankan perintah berikut di terminal Git (Git Bash): ssh-keygen

Setelah menjalankan perintah, akan muncul pesan berikut:

Menghasilkan pasangan kunci RSA publik / pribadi.

Masukkan file untuk menyimpan kunci (/h//.ssh/id_rsa):

Berikan jalur untuk menyimpan kunci, misalnya, masukkan file untuk menyimpan kunci (/h//.ssh/id_rsa): C:\Users\Public\my-new-ssh-key

Kemudian berikan frasa sandi untuk kunci itu (kata sandi apa pun dengan minimal 8 karakter)

• Selanjutnya jalankan perintah berikut: eval “$ (ssh-agent –s)”

• Jalankan perintah berikut: ssh-add C:/Users/Public/my-new-ssh-keyCatatan: gunakan garis miring di jalur ke kunci SSH yang baru dibuat.

Setelah itu, tambahkan konten file my-new-ssh-key.pub dan tambahkan di area teks untuk Tambahkan kunci publik (Bitbucket, GitHub, dll.)

ankit bhardwaj
sumber
0

Saat menghubungkan ke repositori jarak jauh untuk mengambil, menarik, mendorong, dll., Saya mengalami kesalahan yang sama:

fatal: unable to access 'https://github.com/repository.git/': error:1
407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

Saya baru saja menginstal ulang Git 64-bit sebagai ganti 32-bit dan itu memperbaiki masalah.

Setelah penginstalan, verifikasi jalur Git di variabel lingkungan. Harus:

C:\Program Files\Git\bin\git.exe
Pratap Singh
sumber
0

Ini adalah masalah dengan IntelliJ dan RubyMine. GitHub harus menonaktifkan SSL (mungkin sesuai dengan PCI?) Untuk mendukung TLS. Jika Anda membuka Pengaturan di IntelliJ atau RubyMine dan menavigasi ke Kontrol Versi> Git, Anda akan melihatnya menggunakan git.exe yang diinstal di bawah jalur aplikasi. Anda harus mengunduh versi terbaru Git dan mengubah jalur dalam pengaturan VCS Anda untuk mengarah ke sana, misalnya C: \ Program Files \ Git \ bin \ git.exe jika Anda menginstalnya di Windows. Bekerja seperti pesona setelah itu.

Dave Medlock
sumber
0

Kadang-kadang, ini disebabkan oleh msysgit usang yang menggunakan ssl lama dan tidak terawat lagi, Anda dapat menginstal git terbaru untuk windows , dan mengarahkan jalur git.exe dalam pengaturan kura-kura ke sana, kemudian masalah ini hilang.

Benny
sumber
0

Mengalami kesalahan serupa. Di windows, Memperbarui git di windows ke versi terbaru. Itu memperbaiki masalah.

Olusola Omosola
sumber
Bagaimana ini menambahkan sesuatu ke jawaban yang diterima yang menyarankan memperbarui git untuk memperbaiki masalah?
David
Saya menjelaskan apa yang berhasil untuk saya. Mirip dengan apa yang mungkin dilakukan beberapa orang lain juga.
Olusola Omosola
0

Peningkatan versi Git berhasil bagi saya. Saya memiliki versi 1.9.5 dan seterusnya dan saya meningkatkan ke 2.21.0 di windows. Upgrade juga sangat mudah. Kami tidak perlu menghapus versi lama. Unduh penginstal Git terbaru dan terus tekan next menggunakan opsi default dan versi akan diubah ke versi baru dan semua pengaturan lama akan tetap berfungsi seperti kunci ssh dll. Kami tidak perlu membuat kunci lagi dan menyalakannya github atau repositori lainnya.

Sebelumnya kloning protokol https saya tidak berfungsi dan memberikan kesalahan

fatal: tidak dapat mengakses ' https://github.com/tensorflow/models/ ': kesalahan: 1407742E: Rutinitas SSL: SSL23_GET_SERVER_HELLO: versi protokol peringatan tlsv1

Setelah saya mengunduh versi baru dan menjalankan perintah klon yang sama, itu berfungsi tanpa masalah.

AKumar
sumber