Mit git und curl gibt es immer wieder Probleme mit https-Verbindungen - oft fehlen die notwendigen Root-Zertifikate zum Verizifieren, oder ein selbstsigniertes Zertifikat wird nicht akzeptiert. Hier ein paar Lösungswege um diese Probleme zu beseitigen.
cygwin: “error setting certificate verify locations”
Wird der Zugriff auf SSL gesicherte Resourcen mit dieser Fehlermeldung verweigert, fehlt meistens nur das CA-Bundle. Cygwin-Installer starten und das Paket “ca-certificates” installieren, dann ist die Fehlermeldung weg.
$ git push -u origin master
error: error setting certificate verify locations:
CAfile: /usr/ssl/certs/ca-bundle.crt
[...]
cygwin: “error: SSL certificate problem: unable to get local issuer certificate while accessing https”
Kann das Zertifikat nicht verifziert werden, gibt’s ein paar Möglichkeiten. Wahlweise die Überprüfung ausschalten, oder das notwendige Zertifikat nachinstallieren.
- für einen einzelnen git Befehl deaktivieren
env GIT_SSL_NO_VERIFY=true git <cmd>
- Überprüfung für ein spezifisches git Repository komplett deaktivieren
git config http.sslVerify "false"
- das eigenen RootCA zum CA-Bundle hinzufügen
export MYROOTCA="/tmp/rootca.crt"
export CABUNDLE="/usr/ssl/certs/ca-bundle.crt"
openssl x509 -in $MYROOTCA -text >> $CABUNDLE
openssl x509 -in /tmp/$SERVERNAME.cert -text >> $CABUNDLE
- das Zertifikat zum Bundle hinzufügen
export SERVERNAME="git.server.local"
export SERVERPORT="443"
export CABUNDLE="/usr/ssl/certs/ca-bundle.crt"
echo -n | openssl s_client -showcerts -connect $SERVERNAME:$SERVERPORT | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/$SERVERNAME.cert
openssl x509 -in /tmp/$SERVERNAME.cert -text >> $CABUNDLE
Hinweis: dieser Artikel ist ursprünglich auf dem IT-Blog “copy/paste” (www.copypaste.at) erschienen.