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

Ale*_*nin 42 ssl mercurial tortoisehg

我正在寻找一种方法,使--insecure选项成为任何hg\ TortoiseHg命令的默认选项.

请不要写这是一个不好的做法 - 我知道可能的风险并认为它们是完全可以接受的.

Bru*_*man 34

如果您的目标是在推/拉期间消除证书指纹警告,则有更好的方法来执行此操作.使用.hg/hgrc中的[hostfingerprints](或〜/ .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
Run Code Online (Sandbox Code Playgroud)

这将消除警告而不消除安全检查.

注意:我从您的评论中看到另一个答案,您已经找到了这个解决方案.无论如何我都会张贴这个,以防其他人遇到同样的问题.

  • 关于使用bash获取服务器指纹有一个很好的问题:http://stackoverflow.com/a/5165073/1760643这里命令:`openssl s_client -connect <host>:<port> </ dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in/dev/stdin` (2认同)

Ry4*_*ase 25

设置cacerts[web]节为空字符串看起来是一样的.从来源:

if cmdoptions.get('insecure', False):
    ui.setconfig('web', 'cacerts', '!', '--insecure')
Run Code Online (Sandbox Code Playgroud)

其中维基确认:

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

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

所以把cacerts=![web]您的全球hgrc(部分/etc/mercurial/hgrc对Linux的喜欢)将让你有.

  • 所以我最终决定使用`[hostfingerprints]`部分的方法. (5认同)
  • 在我的特定情况下,`[web] caserts =`在存储库级别上不起作用。可能是我做错了。 (2认同)

krt*_*tek 18

您可以使用别名来实现这一目标.将此添加到您的.hgrc:

[alias]
push = push --insecure
Run Code Online (Sandbox Code Playgroud)

问题是你必须为你想要使用的每个命令执行此操作,我建议你使用不同于默认名称的别名.

据我所知,没有办法--insecure"自动" 强制执行所有命令.