March 25th, 2011

glider

mercurial client + https

У стокового клиента меркуриала есть проблема. Если он общается с сервером по SSL, то он будет ругаться на самоподписанные сертификаты, причем не просто выдавать варнингом, а просто отказываться работать.

Первый способ фикса: прописать в файле

C:\Program Files (x86)\TortoiseHg\hgrc.d\Paths.rc:
[web]
cacerts=

Этот солюшен заслуживает внимания, так как он работает, но он несекьюрный, ибо отрубает проверку сертификатов на всей тачке.

Есть другой подход. В файлик \.hg\hgrc добавляем следующую секцию:

[hostfingerprints]
srv-mercurial.example.com = 68:f8:e1:ed:f1:35:0a:6e:1d:12:99:7a:e4:e7:d5:fa:54:cf:1b:ac

Все круто, но как узнать фингерпринт нужного нам сервера? В этом нам поможет предыдущий солюшен. Если отрубить cacerts и сделать pull/push, меркуриал напишет варнинг на тему того, что для сервера <такого-то> отключена проверка сертификатов. Эта мессага-то нам и нужна, ибо в ней как раз и содержится фингерпринт!