Как полностью отключить проверку SSL-сертификатов в Mercurial / TortoiseHg? - PullRequest
41 голосов
/ 20 марта 2011

Я ищу способ сделать опцию --insecure опцией по умолчанию для любой команды hg \ TortoiseHg.

Пожалуйста, не пишите, что это плохая практика - я знаю о возможных рискахи считаю, что они полностью приемлемы.

Ответы [ 4 ]

34 голосов
/ 07 февраля 2013

Если ваша цель состоит в том, чтобы исключить предупреждения отпечатков пальцев сертификатов во время 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

Это исключит предупреждения без устранения проверок безопасности.

Примечание: Я вижу из ваших комментариев к другому ответу, что вы уже нашли это решение.В любом случае, я пишу об этом, если у кого-то есть такая же проблема.

25 голосов
/ 20 марта 2011

Установка cacerts в секции [web] для пустой строки выглядит одинаково.Из источника :

if cmdoptions.get('insecure', False):
    ui.setconfig('web', 'cacerts', '!', '--insecure')

, который вики подтверждает :

Иногда бывает целесообразно отключить проверки безопасности, дляэкземпляр при работе с хостами с самозаверяющими сертификатами.Это можно сделать, отключив конфигурацию сертификата CA в командной строке:

hg push --config web.cacerts = https://self -signed-host / repo

Таким образом, размещение cacerts=! в разделе [web] вашей глобальной hgrc (/etc/mercurial/hgrc на linux-лайках) приведет вас туда.

18 голосов
/ 20 марта 2011

Вы можете использовать псевдонимы для достижения этой цели. Добавьте это к вашему .hgrc:

[alias]
push = push --insecure

Проблема в том, что вам придется делать это для каждой команды, которую вы хотите использовать, и я предлагаю вам использовать разные имена для своих псевдонимов, чем имя по умолчанию.

Насколько я знаю, не существует способа принудительного применения --insecure для всех команд "автоматически".

0 голосов
/ 13 июня 2019

Фон

Как указано в ответе Брюса Олдермана , хорошей альтернативой использованию опции --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 есть информация о безопасных соединениях.

...