Ich benutze Git unter Windows. Ich habe das msysGit-Paket installiert. Mein Test-Repository hat ein selbst signiertes Zertifikat auf dem Server. Ich kann auf das Repository über HTTP zugreifen und es verwenden, ohne Probleme zu haben. Beim Wechsel zu HTTPS tritt der Fehler auf:
SSL-Zertifikatsproblem: Es konnte kein lokales Aussteller-Zertifikat erhalten werden.
Ich habe das selbst signierte Zertifikat im Vertrauenswürdige Stammzertifizierungsstellen meines Windows 7-Client-Rechners installiert. Ich kann ohne Fehlermeldungen zur HTTPS-Repository-URL im Internet Explorer navigieren.
Dieser Blog-Beitrag von Philip Kelley erklärte, dass cURL den Zertifikatspeicher des Client-Rechners nicht verwendet. Ich habe den Ratschlägen des Blog-Beitrags befolgt, um eine private Kopie von curl-ca-bundle.crt
zu erstellen und Git so zu konfigurieren, dass es diese verwendet. Ich bin sicher, dass Git meine Kopie verwendet. Wenn ich die Kopie umbenenne, beschwert sich Git, dass die Datei fehlt.
Ich habe mein Zertifikat, wie im Blog-Beitrag erwähnt, eingefügt, bekomme aber immer noch die Meldung "Es konnte kein lokales Aussteller-Zertifikat erhalten werden".
Ich habe überprüft, dass Git immer noch funktioniert, indem ich ein GitHub-Repository über HTTPS klonen.
Das einzige, was ich sehe, das sich von dem Blog-Beitrag unterscheidet, ist, dass mein Zertifikat tatsächlich das Stammzertifikat ist - es gibt keine Kette, um es zu erreichen. Mein Zertifikat stammt ursprünglich vom Klicken auf den IIS8 IIS-Manager-Link 'Selbstsigniertes Zertifikat erstellen'. Vielleicht macht das ein Zertifikat auf irgendeine Weise anders als das, was cURL erwartet.
Wie kann ich Git/cURL dazu bringen, das selbst signierte Zertifikat zu akzeptieren?