สั้น ๆ :
- รับใบรับรองที่ลงนามด้วยตนเอง
- ใส่ลงใน
~/git-certs/cert.pem
ไฟล์(เช่น) บางไฟล์
- ตั้งค่า
git
ให้เชื่อถือใบรับรองนี้โดยใช้http.sslCAInfo
พารามิเตอร์
รายละเอียดเพิ่มเติม:
รับใบรับรองที่ลงนามด้วยตนเองของเซิร์ฟเวอร์ระยะไกล
สมมติว่า URL ของเซิร์ฟเวอร์และคุณต้องการที่จะเข้าถึงได้ผ่านพอร์ตrepos.sample.com
443
มีหลายวิธีให้เลือก
รับใบรับรองโดยใช้ openssl
$ openssl s_client -connect repos.sample.com:443
จับเอาท์พุทเป็นไฟล์cert.pem
และลบทั้งหมดยกเว้นบางส่วนระหว่าง (และรวมถึง) -BEGIN CERTIFICATE-
และ-END CERTIFICATE-
เนื้อหาของไฟล์ผลลัพธ์ ~ / git-certs / cert.pem อาจมีลักษณะเช่นนี้:
-----BEGIN CERTIFICATE-----
MIIDnzCCAocCBE/xnXAwDQYJKoZIhvcNAQEFBQAwgZMxCzAJBgNVBAYTAkRFMRUw
EwYDVQQIEwxMb3dlciBTYXhvbnkxEjAQBgNVBAcTCVdvbGZzYnVyZzEYMBYGA1UE
ChMPU2FhUy1TZWN1cmUuY29tMRowGAYDVQQDFBEqLnNhYXMtc2VjdXJlLmNvbTEj
MCEGCSqGSIb3DQEJARYUaW5mb0BzYWFzLXNlY3VyZS5jb20wHhcNMTIwNzAyMTMw
OTA0WhcNMTMwNzAyMTMwOTA0WjCBkzELMAkGA1UEBhMCREUxFTATBgNVBAgTDExv
d2VyIFNheG9ueTESMBAGA1UEBxMJV29sZnNidXJnMRgwFgYDVQQKEw9TYWFTLVNl
Y3VyZS5jb20xGjAYBgNVBAMUESouc2Fhcy1zZWN1cmUuY29tMSMwIQYJKoZIhvcN
AQkBFhRpbmZvQHNhYXMtc2VjdXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAMUZ472W3EVFYGSHTgFV0LR2YVE1U//sZimhCKGFBhH3ZfGwqtu7
mzOhlCQef9nqGxgH+U5DG43B6MxDzhoP7R8e1GLbNH3xVqMHqEdcek8jtiJvfj2a
pRSkFTCVJ9i0GYFOQfQYV6RJ4vAunQioiw07OmsxL6C5l3K/r+qJTlStpPK5dv4z
Sy+jmAcQMaIcWv8wgBAxdzo8UVwIL63gLlBz7WfSB2Ti5XBbse/83wyNa5bPJPf1
U+7uLSofz+dehHtgtKfHD8XpPoQBt0Y9ExbLN1ysdR9XfsNfBI5K6Uokq/tVDxNi
SHM4/7uKNo/4b7OP24hvCeXW8oRyRzpyDxMCAwEAATANBgkqhkiG9w0BAQUFAAOC
AQEAp7S/E1ZGCey5Oyn3qwP4q+geQqOhRtaPqdH6ABnqUYHcGYB77GcStQxnqnOZ
MJwIaIZqlz+59taB6U2lG30u3cZ1FITuz+fWXdfELKPWPjDoHkwumkz3zcCVrrtI
ktRzk7AeazHcLEwkUjB5Rm75N9+dOo6Ay89JCcPKb+tNqOszY10y6U3kX3uiSzrJ
ejSq/tRyvMFT1FlJ8tKoZBWbkThevMhx7jk5qsoCpLPmPoYCEoLEtpMYiQnDZgUc
TNoL1GjoDrjgmSen4QN5QZEGTOe/dsv1sGxWC+Tv/VwUl2GqVtKPZdKtGFqI8TLn
/27/jIdVQIKvHok2P/u9tvTUQA==
-----END CERTIFICATE-----
รับใบรับรองโดยใช้เว็บเบราว์เซอร์ของคุณ
ฉันใช้ Redmine กับที่เก็บ Git และฉันเข้าถึง URL เดียวกันสำหรับเว็บ UI และสำหรับการเข้าถึงบรรทัดคำสั่ง git ด้วยวิธีนี้ฉันต้องเพิ่มข้อยกเว้นสำหรับโดเมนนั้นลงในเว็บเบราว์เซอร์ของฉัน
ฉันใช้ Firefox ฉันไปที่Options -> Advanced -> Certificates -> View Certificates -> Servers
นั่นพบว่ามีโฮสต์ที่ลงชื่อตนเองเลือกและใช้Export
ปุ่มฉันได้รับไฟล์เดียวกันopenssl
ทุกประการตามที่สร้างโดยใช้
หมายเหตุ: ฉันรู้สึกประหลาดใจเล็กน้อยไม่มีชื่อของหน่วยงานที่กล่าวถึงอย่างเห็นได้ชัด นี่เป็นเรื่องปกติ
มีใบรับรองที่เชื่อถือได้ในไฟล์เฉพาะ
ขั้นตอนก่อนหน้านี้จะส่งผลให้มีใบรับรองในบางไฟล์ ไม่สำคัญว่าไฟล์จะเป็นไฟล์ตราบเท่าที่ git ของคุณสามารถมองเห็นได้เมื่อเข้าถึงโดเมนนั้น ฉันใช้~/git-certs/cert.pem
หมายเหตุ: หากคุณต้องการใบรับรองที่ลงนามด้วยตนเองที่เชื่อถือได้ให้ใส่ลงในไฟล์เดียวกัน:
-----BEGIN CERTIFICATE-----
MIIDnzCCAocCBE/xnXAwDQYJKoZIhvcNAQEFBQAwgZMxCzAJBgNVBAYTAkRFMRUw
...........
/27/jIdVQIKvHok2P/u9tvTUQA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
AnOtHeRtRuStEdCeRtIfIcAtEgOeShErExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxw
...........
/27/jIdVQIKvHok2P/u9tvTUQA==
-----END CERTIFICATE-----
สิ่งนี้จะใช้ได้ (แต่ฉันทดสอบด้วยใบรับรองเดียวเท่านั้น)
กำหนดค่า git เพื่อเชื่อถือใบรับรองนี้
$ git config --global http.sslCAInfo /home/javl/git-certs/cert.pem
นอกจากนี้คุณยังอาจพยายามที่จะทำระบบที่กว้างใช้แทน--system
--global
และทดสอบ: ตอนนี้คุณจะสามารถสื่อสารกับเซิร์ฟเวอร์ของคุณได้โดยไม่ต้อง:
$ git config --global http.sslVerify false #NO NEED TO USE THIS
หากคุณตั้งค่าคอมไพล์ของคุณเป็นความไม่รู้ของใบรับรอง SSL ให้ยกเลิกการตั้งค่า:
$ git config --global --unset http.sslVerify
และคุณอาจตรวจสอบว่าคุณทำถูกต้องทั้งหมดโดยไม่มีข้อผิดพลาดการสะกด:
$ git config --global --list
สิ่งที่ควรแสดงรายการตัวแปรทั้งหมดที่คุณตั้งไว้ทั่วโลก (ฉันสะกด http เป็น htt)