如何完全禁用Mercurial/TortoiseHg中的SSL证书检查?

问题描述:

我正在寻找一种方法,使--insecure选项默认的任何hg \ TortoiseHg命令。如何完全禁用Mercurial/TortoiseHg中的SSL证书检查?

请不要写,这是一个不好的做法 - 我知道关于可能存在的风险,并考虑他们是完全可以接受的。

[web]部分为空字符串设置cacerts看起来是一样的。从the source

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

其中the wiki confirms

有时,它与主机处理 自签名证书时,可能是有利的 禁用安全检查,例如 。这可以通过禁用命令行CA证书 配置来完成 :

汞柱推--config web.cacerts = https://self-signed-host/repo

所以把cacerts=!在全局hgrc的[web]节(在linux-likes上的/etc/mercurial/hgrc)会让你在那里。

+0

这种方法确实有效 - 非常感谢!唯一的问题是,汞印刷''警告:“指纹81:....:fe没有验证(检查hostfingerprints或web.c acerts配置设置)”''''hg pull''和' hg推'。 – 2011-03-22 06:31:59

+5

所以我最终决定用'[hostfingerprints]'部分使用一种方法。 – 2011-03-22 06:33:41

+1

[hostfingerprinst]更棒的是你可以将它们放在版本库hgrc而不是root版本中,所以这个修改不会影响其他所有的版本库。 – 2012-04-09 10:48:30

您可以使用aliases来实现这一目标。添加到您的.hgrc

[alias] 
push = push --insecure 

问题是你是预示了为你想使用我建议你不是默认的一个使用不同的名称为您的别名每个命令执行此操作。

据我所知,没有办法为“自动”执行--insecure所有命令。

+0

即使Mercurial在内部被调用(不带参数) - 从IntelliJ IDEA开始工作。 – 2017-01-12 06:13:20

如果你的目标是推动中消除证书指纹警告/拉,有一个更好的方式来做到这一点。使用.hg/hgrc文件中的[hostfingerprints]。

[hostfingerprints] 
server.example.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc 

这样可以在不消除安全检查的情况下消除警告。

注意:我从您的意见看到另一个答案,你已经找到了这个解决方案。无论如何,我都会发布这个消息,以防别人遇到同样的问题。

+1

感谢您发布此信息。这正是我需要的。 – Cypher 2013-07-31 19:13:35

+2

有关于使用bash获取服务器指纹一个很好的问题:http://*.com/a/5165073/1760643 这里该命令: '的OpenSSL的s_client.First -connect /dev/null | openssl x509 -fingerprint -noout -in/dev/stdin' – d9k 2014-09-19 01:12:06

+1

我不得不进入〜/ .hgrc – jeremyjjbrown 2014-12-17 17:42:14