Mercurial und HTTPS: certificate verify failed

Heute wollte ich ein neues Repository auf Sourceforge klonen und pushen, per HTTPS. Das Kommando sah in etwa so aus:

hg clone https://amin@hg.code.sf.net/project

Leider gabs eine schlechte Rückmeldung:

Abbruch: Fehler: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)

Was ist passiert? Der Mercurial-Server lässt verständlicherweise nur verschlüsselte Verbindungen zu. Und der Hg-Client soll auch nur mit vertrauenswürdigen Servern kommunizieren. Dafür ist ein kryptisches Zertifikat nötig. Anscheinend hat die Hg-Installation (entgegen der Anleitung) keine Python-Zertifikatedatei dabei, obwohl Mercurial ein Python-Programm ist. Ich konnte jedenfalls keine cacert.pem finden. Da ich aber noch eine separate Python-Installation habe, konnte ich auf diese Verweisen. Dazu muss man in der globalen Mercurial-Konfiguration diese Datei einmal angeben:

; in der %USERPROFILE%\Mercurial.ini
[web]
cacerts=C:\Python27\Lib\site-packages\pip\_vendor\requests\cacert.pem

Es muss übrigens nicht diese Cacerts-Datei sein, man kann auch eine Datei aus einem Webbrowser exportieren. Diese kann auch auf *.crt enden und man kann mehrere Zertifikate in einer Datei hinter einander anfügen.

 

Java – for-each rettet einen

Heute sollte ich einen Fehler im fremden Code heraus finden. Das Java-Programm warf folgende Exception aus:

java.util.ConcurrentModificationException

Tja, es wurde auf jeden Fall von einer ArrayList-Collection geworfen. Meine erste Vermutung war, das zwei Threads auf dieser ArrayList schreiben. Also auf den thread-sicheren Vector umsteigen? Hat aber nichts geholfen.

» Weiterlesen

Free/Libre Software gegen Open Source Software

FLOSS (auch als FOSS bekannt) steht für Free/Libre and Open Source Software. Für viele ist das alles ein Brei und es gibt für sie keinen Unterschied zwischen Open Source Software (kurz OSS) und Free/Libre Software (kurz Free Software). Ist es das wirklich oder gibt es da nicht einen Unterschied? » Weiterlesen

1 2 3 7