Я ищу способ сделать параметр --insecure
параметром по умолчанию для любой команды hg
\ TortoiseHg.
Пожалуйста, не пишите, что это плохая практика - я знаю о возможных рисках и считаю их вполне приемлемыми.
Я ищу способ сделать параметр --insecure
параметром по умолчанию для любой команды hg
\ TortoiseHg.
Пожалуйста, не пишите, что это плохая практика - я знаю о возможных рисках и считаю их вполне приемлемыми.
Установка cacerts
в разделе [web]
на пустую строку выглядит так же. Из источника:
if cmdoptions.get('insecure', False):
ui.setconfig('web', 'cacerts', '!', '--insecure')
что подтверждает вики:
Иногда бывает целесообразно отключить проверки безопасности, например, при работе с хостами с самозаверяющими сертификатами. Это можно сделать, отключив настройку сертификата ЦС в командной строке:
hg push --config web.cacerts= https://self-signed-host/repo
Таким образом, размещение cacerts=!
в разделе [web]
вашего глобального hgrc (/etc/mercurial/hgrc
в Linux-подобных) приведет вас туда.
"warning: something.com certificate with fingerprint 81:....:fe not verified (check hostfingerprints or web.c acerts config setting)"
несколько раз в течение hg pull
и hg push
.
- person Alex Yakunin; 22.03.2011
[hostfingerprints]
.
- person Alex Yakunin; 22.03.2011
.hg/hgrc
репо. Никакие настройки не ограничены конкретными местоположениями в различных возможных местоположениях hgrc.
- person Ry4an Brase; 09.04.2012
[web] caserts=
не работал на уровне репозитория. Может быть, я сделал что-то не так.
- person Andriy K; 09.04.2012
Если вашей целью является устранение предупреждений об отпечатках сертификатов во время push/pull, есть лучший способ сделать это. Используйте [hostfingerprints] в .hg/hgrc (или ~/.hgrc — см. комментарии).
[hostfingerprints]
server.example.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc
Это устранит предупреждения без устранения проверок безопасности.
Примечание. Из ваших комментариев к другому ответу я вижу, что вы уже нашли это решение. Я отправляю это в любом случае, если у кого-то еще есть такая же проблема.
openssl s_client -connect <host>:<port> < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdin
- person d9k; 19.09.2014
Для этого вы можете использовать псевдонимы. Добавьте это в свой .hgrc
:
[alias]
push = push --insecure
Проблема в том, что вам придется делать это для каждой команды, которую вы хотите использовать, и я предлагаю вам использовать другие имена для ваших псевдонимов, чем по умолчанию.
Насколько мне известно, нет возможности принудительно применить --insecure
для всех команд «автоматически».
Как указано в ответе Брюса Олдермана, хорошей альтернативой использованию параметра --insecure
является простое добавление отпечатков хоста к ~/.hgrc
файл. (По-видимому, их запрещено добавлять в .hg/hgrc
из-за угроз безопасности.) Однако раздел [hostfingerprints]
устарел.
Добавьте следующее к ~/.hgrc
:
[hostsecurity]
<host>:fingerprints=sha256:<hash>
где <host>
следует заменить именем хоста (без префикса https://
), а <hash>
следует заменить отпечатком SHA-256 (32 байта, записанных в виде :
-разделенных шестнадцатеричных чисел). Вывод следующей команды SHA-256 отпечатка пальца
openssl s_client -connect <host>:<port> < /dev/null 2>/dev/null | openssl x509 -fingerprint -sha256 -noout -in /dev/stdin
после замены <host>
и <port>
имеет вид
SHA256 Fingerprint=<hash>
Например, для самозаверяющего сертификата, запущенного с локального компьютера, может быть запись в ~/.hgrc
, которая выглядит как
[hostsecurity]
localhost:fingerprints=sha256:DD:30:5A:9B:2C:E1:59:7E:46:C4:42:D3:41:34:03:17:2A:CF:50:E8:DF:78:E6:2E:C9:42:D9:9A:C9:58:AC:52
На странице Mercurial о безопасных соединениях есть дополнительная документация.