Git pull / push - ไม่สามารถเข้าถึง HTTPS รูทีน SSL ดูเหมือนจะไม่ทำงาน


105

ฉันใช้ Git (และ GitHub) เป็นประจำทุกวันและทุกอย่างทำงานได้ดีและทันใดนั้นฉันก็ไม่สามารถสื่อสารกับที่เก็บ GitHub ระยะไกลผ่านคำสั่ง Git ของฉันได้อีกต่อไป เมื่อฉันพยายาม "Git pull" มันแสดงข้อผิดพลาดดังต่อไปนี้:

ร้ายแรง: ไม่สามารถเข้าถึง ' https://github.com/snahrvar/eatibl.git/ ': ข้อผิดพลาด: 1407742E: รูทีน SSL: SSL23_GET_SERVER_HELLO: เวอร์ชันโปรโตคอลการแจ้งเตือน tlsv1

ดังนั้นฉันจึงทดสอบในหลายที่เก็บและได้รับข้อผิดพลาดเดียวกันบนคอมพิวเตอร์ของฉัน ฉันมีคนอื่นโต้ตอบกับที่เก็บเดียวกันเหล่านั้นและมันก็ใช้ได้ดีสำหรับพวกเขา ก่อนหน้านี้เกิดข้อผิดพลาดฉันได้ทำการ "npm install sharp" ในโปรเจ็กต์และลงเอยด้วยความล้มเหลวและฉันสงสัยว่าสิ่งนี้อาจรบกวนการตั้งค่า SSL บางอย่าง แต่นั่นเป็นการคาดเดาอย่างรุนแรง!

ความคิดหรือคำแนะนำทั่วไปใด ๆ จะได้รับการชื่นชมมาก!

หากเป็นประโยชน์เลยนี่คือสภาพแวดล้อมของฉัน:

  • เวอร์ชัน Git: 1.9.4.msysgit.2
  • เวอร์ชัน Windows: Windows 8.1

ปัญหาเดียวกันที่นี่ ?
LYES - CHIOUKH

เช่นเดียวกันกับ git 1.9.5.msysgit.1
Maxime Helen

ฉันกำลังประสบปัญหาเดียวกัน
ไล่ล่า cabrera

11
ฉันเชื่อว่าการเปลี่ยนแปลงนี้เป็นสาเหตุของข้อผิดพลาด: github.com/blog/2507-weak-cryptographic-standards-removed
Dan H

ฉันมีปัญหาเดียวกันและติดตั้งเดสก์ท็อป Github และทุกอย่างทำงานได้ดี!
Damian

คำตอบ:


69

การอัปเดต TortoiseGit และ GCM ไม่ได้ช่วยฉัน แต่การอัปเดต Git นั้นทำได้ตามคำแนะนำของ @ Frederic ในความคิดเห็น

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

เพื่อให้แน่ใจว่า Git เวอร์ชันใหม่ติดตั้งอย่างถูกต้องและไม่ขัดแย้งกับการติดตั้งก่อนหน้านี้ (หากคุณใช้ TortoiseGit เนื่องจากจะใช้โฟลเดอร์ต่างกันและยุ่งกับตัวแปร PATH) ให้ลบการติดตั้ง Git ที่มีอยู่ก่อนติดตั้ง Git ที่อัปเดต . อาจต้องติดตั้งด้วยสิทธิ์ของผู้ดูแลระบบ


ฉันไม่แน่ใจว่าเกิดอะไรขึ้นกับ git เวอร์ชันล่าสุดที่เริ่มโยนข้อผิดพลาดเหล่านี้ในวันนี้ แต่คำตอบนี้เหมาะสำหรับฉัน ฉันทำการติดตั้งใหม่ (รุ่นเก่า 2 วัน) และฉันสำรองข้อมูลและเรียกใช้ไม่มีข้อผิดพลาด ssl พูดคุยเกี่ยวกับเข็มในกองหญ้า
JeffBaumgardt

3
ส่วนที่น่าสนใจที่สุดคือ github เองไม่ได้พูดถึงสิ่งนี้แม้ว่ามันจะเกี่ยวข้องกับการอัปเดตล่าสุดก็ตาม การค้นหาอย่างรวดเร็วของ Google เกี่ยวกับปัญหาที่คล้ายกันกับโฮสติ้งโค้ดอื่น ๆ ตำหนิ OpenSSL
feos

ใช่เพียงแค่ต้องอัปเดตเป็นเวอร์ชันล่าสุด! ขอบคุณ: D
Shayan Nahrvar

1
@gath คุณอาจมี 2 การติดตั้ง git ที่เข้ากันไม่ได้ให้ลองถอนการติดตั้ง git ที่มีอยู่ทั้งหมดจากนั้นติดตั้ง git ใหม่ตั้งแต่ต้น แต่ข้อผิดพลาดของคุณแตกต่างกันstackoverflow.com/questions/3778042/…
feos

5
สำหรับฉัน "ลบการติดตั้ง Git ที่มีอยู่ก่อนติดตั้ง Git ที่อัปเดต" เป็นกุญแจสำคัญในการล่มสลายทั้งหมด
Richard Ockerby

20

คุณมีแนวโน้มที่จะเข้ากันไม่ได้กับการเลิกใช้งานโปรโตคอลการเข้ารหัส SSL ที่อ่อนแอของ GitHub:

ประกาศลบมาตรฐานการเข้ารหัสที่อ่อนแอ

วิธีแก้ปัญหาจะแตกต่างกันไป แต่สำหรับ Windows คุณอาจต้องอัปเกรด Git credential manager เป็น 1.14.0

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


1
พวกเขาจะยังคงสนับสนุน Git credential manager สำหรับ windows หรือไม่: wincred ฉันได้รับข้อผิดพลาดเดียวกันกับเครื่องมือนั้น
Max Hartshorn

คำตอบนี้ช่วยให้บริบทเกี่ยวกับการเปลี่ยนแปลง แต่วิธีแก้ปัญหาจาก @feos เป็นสิ่งที่เหมาะกับฉัน (Windows 10, TortoiseGit)
Eric Farraro

14

หากคุณใช้ Android Studio หรือ IntelliJ IDEA การอัปเดต Git เป็นเวอร์ชันล่าสุดและเปลี่ยนเส้นทางเพื่อชี้ไปยังเวอร์ชันใหม่จะช่วยแก้ปัญหาให้ฉันได้

ใส่คำอธิบายภาพที่นี่


1
สิ่งนี้ใช้ได้กับฉันด้วย: ติดตั้ง Git เวอร์ชันล่าสุดและชี้ IntelliJ IDEA ไปที่
user1825866

8

เมื่อใช้ TortoiseGit ฉันได้ทำการแก้ไข / อัปเดตอื่น ๆ ทั้งหมดที่มอบให้สำหรับสิ่งนี้แล้ว แต่ก็ยังไม่ประสบความสำเร็จ ฉันพบสิ่งนี้: ไม่สามารถ git push / pull / fetch โดยฉับพลัน

การตั้งค่าของฉัน TortoiseGit สำหรับ Git สำหรับเส้นทางของ Windows Git.exe C:\Program Files (x86)\Git\binถูกชี้ไปที่ ฉันเปลี่ยนเป็นC:\Program Files\Git\binและตอนนี้ก็ใช้งานได้อีกครั้ง


3
ฉันตรวจสอบโดยใช้Check nowปุ่มในGeneralกล่องโต้ตอบการตั้งค่าพร้อมx86เส้นทางที่ฉันได้รับgit version 1.9.5.msysgit.1หลังจากเปลี่ยนเป็นC:\Program Files\Git\binฉันได้รับgit version 2.16.2.windows.1และเส้นทางนั้นทั้งหมดทำงานได้ดี
apdevelop

8

นี่คือสิ่งที่ได้ผลสำหรับฉัน

  1. ติดตั้ง Git เวอร์ชันล่าสุดจากที่นี่: https://git-scm.com/download/win
  2. ใน TortoiseGit ไปที่เมนูการตั้งค่าทั่วไปเส้นทาง Git.exe - เปลี่ยนจากเส้นทาง 32 บิตเป็น 64 บิต: C: \ Program Files (x86) \ Git \ bin → C: \ Program Files \ Git \ bin

จุดดี. หากใคร (เช่นฉัน) เคยใช้ Windows รุ่นเก่า 32 บิตอย่าลืมแทนที่บน PATH
AG

นี้ช่วยประหยัดเวลาของฉัน @dgundersen
Tejas Mehta

8

การอัปเดต Git ไม่เพียงพอในสถานการณ์ของฉัน หลังจากดีบักเป็นเวลาหลายชั่วโมงนี่คือการแก้ไขของฉัน:

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

สิ่งนี้ช่วยแก้ปัญหาให้ฉันและในการตั้งค่าที่แตกต่างไปจากเดิมอย่างสิ้นเชิง (Mac OS X) curlยังคงให้ข้อความแก่ฉันซึ่งทำให้ฉันสงสัยว่ามีการตั้งค่าเช่นนั้นสำหรับแอป ssl ทั้งหมดหรือไม่ไม่ใช่แค่git...
chesterbr

สายใดสายหนึ่ง
Dmitri Zaitsev

2

ฉันมีปัญหาเดียวกันนี้ขณะดึงโค้ดจาก GitHub บนเทอร์มินัลVisual Studio Codeของฉัน ฉันพบว่าคำแนะนำในคำตอบก่อนหน้านี้มีประโยชน์และแฮ็ควิธีแก้ปัญหาร่วมกันโดยทำตามขั้นตอนด้านล่าง:

ที่เก็บนี้มีประโยชน์มาก

ฉันหวังว่านี่จะช่วยใครบางคนได้


2

TL; DR: git config --system http.sslbackend schannelและปิดการตรวจสอบ HTTPS github.comในซอฟต์แวร์ป้องกันไวรัสของคุณ


ฉันใช้บรรทัดคำสั่ง Git บน Windows 8 x64 นอกจากนี้ซอฟต์แวร์ป้องกันไวรัสของฉันจะตรวจสอบปริมาณการใช้งาน HTTPSตามค่าเริ่มต้น เช่นเดียวกับคนอื่น ๆ ในการตอบคำถามนี้ฉันใช้ GitHub เกือบทุกวัน

  • การอัปเดต Git - ไม่ได้ช่วย - เพราะฉันใช้ OpenSSL (ดูด้านล่าง)
  • การอัปเดตตัวจัดการข้อมูลรับรอง - ไม่ได้ช่วยอะไร

จากนั้นฉันก็เริ่มเล่นโดยเปลี่ยนแบ็กเอนด์ SSL:

git config --system http.sslbackend openssl ----------------vs------------------ git config --system http.sslbackend schannel และซอฟต์แวร์ป้องกันไวรัสจะตรวจสอบปริมาณการใช้งาน SSL:

  1. OpenSSL, HTTPS ตรวจสอบบน: error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01
  2. OpenSSL, HTTPS ตรวจสอบปิด: SSL certificate problem: unable to get local issuer certificate
  3. SecureChannel, HTTPS ตรวจสอบบน: schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.
  4. SecureChannel, HTTPS ตรวจสอบปิด: ทำงานได้ดี

PS: แทนที่จะใช้ commandline คุณสามารถติดตั้ง Git ล่าสุดใหม่ได้โดยเลือก "Use native Windows SSL validation library"

PPS: กรณี (3) ดูเหมือนจะเป็นข้อบกพร่องในไลบรารี schannel เนื่องจากใบรับรอง MITM ที่ซอฟต์แวร์ป้องกันไวรัสของฉันใช้อยู่ในรายการที่อนุญาตพิเศษในเครื่องของฉัน


เมื่อติดตั้งคอมไพล์ใหม่ฉันลบการติดตั้งเก่าออกทั้งหมดและสำหรับการติดตั้งใหม่ฉันเลือก OpenSSL ดังนั้นฉันเดาว่ามันติดตั้งใหม่ตั้งแต่เริ่มต้น แต่ฉันไม่มีแอนตี้ไวรัส การติดตั้งแบ็กเอนด์ SSL ใหม่เปลี่ยนอะไรให้คุณหรือไม่หรือคุณไม่ได้ทำ
feos

@feos ใช่มันใช้ได้กับฉันในโหมดที่ไม่ใช่ OpenSSL เท่านั้น นอกจากนี้ฉันต้องปิดการตรวจสอบ https ใน AV
Mike Makarov

ยังไม่ชัดเจนสำหรับฉันคุณติดตั้ง SSL ใหม่หรือไม่?
feos

@feos ไม่ฉันไม่ได้ ฉันไม่คิดว่าจะสามารถ "ติดตั้ง SSL ใหม่" บน Windows ได้ ดังนั้นไม่แน่ใจว่าคุณหมายถึงอะไร เมื่อคุณติดตั้งไคลเอนต์ git ล่าสุดคุณมีตัวเลือกให้เลือก - แบ็กเอนด์ OpenSSL หรือ Windows ที่รวมเข้าด้วยกัน ฉันเลือก OpenSSL ไม่ได้ผลและฉันเปลี่ยนแบ็กเอนด์ผ่านการกำหนดค่า หวังว่านี่จะกระจ่าง
Mike Makarov

ไม่ขอบคุณ ฉันคิดว่าคุณมีปัญหาที่แตกต่างไปจาก OP อย่างสิ้นเชิง
feos

1

บน macOS คุณสามารถติดตั้งเวอร์ชันล่าสุดได้gitทางHomebrew.


น่าเสียดายที่สิ่งนี้ใช้ไม่ได้สำหรับฉันบน MacOS X 10.7.5 (Lion) - มีข้อผิดพลาดเดียวกัน จากนั้นฉันลองติดตั้งHomebrewตั้งแต่เริ่มต้น - ดูเหมือนว่าจะเป็น catch22 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

@Setaa ดีอาจจะลองติดตั้งด้วยตนเองจากหน้าเผยแพร่แล้ว? ดูเหมือนว่าพวกเขาจะพูดถึงเรื่องนี้ในปี1.5.5
AS

1

เหมือนกันสำหรับฉันกับ Git 1.9.5.msysgit.1 ด้วย ฉันพยายามติดตั้งhttps://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0แต่ไม่มีการเปลี่ยนแปลง

จริงๆแล้วไม่มีอะไรเกิดขึ้นหลังการติดตั้ง บางทีฉันทำอะไรผิด? (นั่นอาจไม่ช่วยสำหรับคำถามเริ่มต้น แต่สำหรับคนอื่นใช่!)


6
เพื่อช่วยชุมชนฉันเพิ่งอัปเดต git (สำหรับ windows) (ด้วยgit-scm.com/download/win ) และมันแก้ปัญหาได้!
Frederic

2
ภายใต้ Windows 7 Pro / 64 ฉันอัปเกรดคอมไพล์โดยใช้ลิงก์ git-scm.com/download/win สิ่งนี้ติดตั้ง git เป็น c: \ program files \ git แทนที่จะเป็น c: \ program files (x86) \ git เวอร์ชันของฉันเปลี่ยนจาก 1.9.5.msysgit.1 เป็น 2.16.2.windows.1 และเมื่อฉันกำหนดค่า WebStorm ให้ชี้ไปยังเวอร์ชันที่ใหม่กว่า1407742E: รูทีน SSL ที่ลึกลับ: SSL23_GET_SERVER_HELLO:ข้อผิดพลาดเวอร์ชันโปรโตคอลการแจ้งเตือน tlsv1ก็หยุดลง
CODE-REaD

FYI การตั้งค่าของฉันคือ: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
CODE-REaD

คุณควรให้กำลังใจในการอัพเกรดคำตอบ
Edward Thomson

1

ใช่ฉันพบปัญหาเดียวกันในคำขอดึงข้อมูลในวันนี้และวิธีแก้ปัญหาคือเพียงอัปเดต Git โดยดาวน์โหลด Git เวอร์ชัน 64 บิตล่าสุด (2.16.2) สำหรับ Windows เผยแพร่เมื่อ 5 วันที่แล้วในวันที่ 2018-02-20


1

ความคิดเห็นโดย @andw ทำงานให้ฉัน:

อัปเดต Git เวอร์ชัน 1.9.5 เป็น 2.15.1 โดยใช้ขั้นตอนเหล่านี้:

ใน sourceTree ไปที่เมนูToolsตัวเลือกGitใช้สมองกลฝังตัว Git


1

วิธีแก้ปัญหาอย่างรวดเร็วคือgit config --global http.sslVerify trueแต่ไม่แนะนำเนื่องจากเอาชนะวัตถุประสงค์โดยใช้ SSL

วิธีที่สองและดีกว่าคือใช้คีย์ ssh แทน SSL URL

ขั้นตอนในการสร้างคีย์ SSH

o รันคำสั่งต่อไปนี้ในเทอร์มินัล Git (Git Bash): ssh-keygen

หลังจากรันคำสั่งข้อความต่อไปนี้จะปรากฏขึ้น:

สร้างคู่คีย์ RSA สาธารณะ / ส่วนตัว

ป้อนไฟล์ที่จะบันทึกคีย์ (/h//.ssh/id_rsa):

กำหนดเส้นทางสำหรับคีย์ที่จะจัดเก็บตัวอย่างเช่นป้อนไฟล์ที่จะบันทึกคีย์ (/h//.ssh/id_rsa): C:\Users\Public\my-new-ssh-key

จากนั้นให้รหัสผ่านสำหรับคีย์นั้น (รหัสผ่านอย่างน้อย 8 ตัวอักษร)

•ถัดไปรันคำสั่งต่อไปนี้: eval“ $ (ssh-agent –s)”

•เรียกใช้คำสั่งต่อไปนี้: ssh-add C:/Users/Public/my-new-ssh-keyหมายเหตุ: ใช้เครื่องหมายทับในเส้นทางไปยังคีย์ SSH ที่สร้างขึ้นใหม่

หลังจากนั้นให้เพิ่มเนื้อหาของไฟล์my-new-ssh-key.pubและเพิ่มในพื้นที่ข้อความสำหรับเพิ่มคีย์สาธารณะ (Bitbucket, GitHub ฯลฯ )


0

ในขณะที่เชื่อมต่อกับที่เก็บระยะไกลเพื่อดึงดึงผลัก ฯลฯ ฉันมีข้อผิดพลาดเดียวกัน:

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

ฉันเพิ่งติดตั้ง Git 64 บิตใหม่แทนที่ 32 บิตและแก้ไขปัญหาได้แล้ว

หลังจากการติดตั้งตรวจสอบเส้นทาง Git ในตัวแปรสภาพแวดล้อม มันควรจะเป็น:

C:\Program Files\Git\bin\git.exe

0

นี่เป็นปัญหากับ IntelliJ และ RubyMine GitHub ต้องปิดใช้งาน SSL (อาจเป็นไปตามข้อกำหนดของ PCI) เพื่อรองรับ TLS ถ้าคุณเปิด Settings ใน IntelliJ หรือ RubyMine แล้วไปที่ Version Control> Git คุณจะเห็นว่ามันใช้ git.exe ที่ติดตั้งอยู่ใต้เส้นทางของแอปพลิเคชัน คุณควรดาวน์โหลด Git เวอร์ชันล่าสุดและเปลี่ยนเส้นทางในการตั้งค่า VCS ให้ชี้ไปที่สิ่งนั้นเช่น C: \ Program Files \ Git \ bin \ git.exe หากคุณติดตั้งบน Windows ใช้งานได้เหมือนมีเสน่ห์หลังจากนั้น


0

บางครั้งสิ่งนี้เกิดจาก msysgit ที่ล้าสมัยซึ่งใช้ ssl เก่าและไม่ได้รับการดูแลอีกต่อไปคุณสามารถติดตั้งgitล่าสุดสำหรับ windowsและชี้เส้นทาง git.exe ในการตั้งค่าเต่าไปที่มันจากนั้นปัญหานี้ก็หายไป


0

พบข้อผิดพลาดที่คล้ายกัน บน windows อัปเดต git บน windows เป็นเวอร์ชันล่าสุด ที่แก้ไขปัญหา


สิ่งนี้เพิ่มอะไรในคำตอบที่ยอมรับซึ่งแนะนำให้อัปเดต git เพื่อแก้ไขปัญหาได้อย่างไร
David

ฉันอธิบายว่าอะไรได้ผลสำหรับฉัน คล้ายกับสิ่งที่คนอื่นทำในบางที
Olusola Omosola

0

การอัปเกรดเวอร์ชัน Git เป็นเคล็ดลับสำหรับฉัน ฉันมีเวอร์ชัน1.9.5แล้วและฉันอัปเกรดเป็น2.21.0บน windows นอกจากนี้การอัพเกรดยังทำได้ง่ายมาก เราไม่จำเป็นต้องถอนการติดตั้งเวอร์ชันเก่า ดาวน์โหลดตัวติดตั้ง Git ล่าสุดและกดต่อไปโดยใช้ตัวเลือกเริ่มต้นและเวอร์ชันจะเปลี่ยนเป็นเวอร์ชันใหม่และการตั้งค่าเก่าทั้งหมดจะยังคงทำงานเหมือนคีย์ ssh เป็นต้นเราไม่จำเป็นต้องสร้างคีย์อีกครั้งและใส่ github หรือที่เก็บอื่น ๆ

ก่อนหน้านี้การโคลนโปรโตคอล https ของฉันไม่ทำงานและเกิดข้อผิดพลาด

ร้ายแรง: ไม่สามารถเข้าถึง ' https://github.com/tensorflow/models/ ': ข้อผิดพลาด: 1407742E: รูทีน SSL: SSL23_GET_SERVER_HELLO: เวอร์ชันโปรโตคอลการแจ้งเตือน tlsv1

เมื่อฉันดาวน์โหลดเวอร์ชันใหม่และรันคำสั่งโคลนเดียวกันมันก็ใช้งานได้โดยไม่มีปัญหาใด ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.