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.

  1. für einen einzelnen git Befehl deaktivieren
env GIT_SSL_NO_VERIFY=true git <cmd>
  1. Überprüfung für ein spezifisches git Repository komplett deaktivieren
git config http.sslVerify "false"
  1. 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
  1. 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.