如何在Mercurial/TortoiseHg中完全禁用SSL证书检查?
我正在寻找一种方法,使如何在Mercurial/TortoiseHg中完全禁用SSL证书检查?,ssl,mercurial,tortoisehg,Ssl,Mercurial,Tortoisehg,我正在寻找一种方法,使--unsecure选项成为任何hg\TortoiseHg命令的默认选项 请不要写,这是一个坏的做法-我知道可能的风险,并认为它们是完全可以接受的。< / P > < P >你可以用它来实现这一点。将此添加到您的.hgrc: [alias] push = push --insecure 问题是您必须为每个要使用的命令执行此操作,我建议您为别名使用不同于默认别名的名称 据我所知,没有办法“自动”对所有命令强制执行--不安全的。将[web]部分中的cacerts设置为空字符串
--unsecure
选项成为任何hg
\TortoiseHg命令的默认选项
请不要写,这是一个坏的做法-我知道可能的风险,并认为它们是完全可以接受的。< / P > < P >你可以用它来实现这一点。将此添加到您的.hgrc
:
[alias]
push = push --insecure
问题是您必须为每个要使用的命令执行此操作,我建议您为别名使用不同于默认别名的名称
据我所知,没有办法“自动”对所有命令强制执行
--不安全的。将[web]
部分中的cacerts设置为空字符串看起来是一样的。发件人:
其中:
有时,这样做可能是有利的
例如,禁用安全检查
在与主机打交道时
自签名证书。这可能是
通过禁用CA证书完成
命令行上的配置:
hg push--config web.cacerts=
所以把cacerts=在您的全球hgrc(/etc/mercurial/hgrc
linux likes上)的[web]
部分中的code>将帮助您实现这一目标。如果您的目标是在推/拉过程中消除证书指纹警告,那么有一种更好的方法可以做到这一点。使用.hg/hgrc(或~/.hgrc——请参阅注释)中的[hostfingerprints]
这将消除警告,而不消除安全检查
注意:我从你对另一个答案的评论中看到,你已经找到了这个解决方案。无论如何,我都会发布这篇文章,以防其他人也有同样的问题。Background
正如中所指出的,使用--unsecure
选项的一个很好的替代方法是简单地将主机指纹添加到~/.hgrc
文件中。(由于存在安全风险,可能禁止将它们添加到.hg/hgrc
。[hostfingerprints]
部分已被弃用
新指令
将以下内容添加到~/.hgrc
:
[hostsecurity]
<host>:fingerprints=sha256:<hash>
替换后的
和
的形式如下
SHA256 Fingerprint=<hash>
有更多关于此方法的文档,非常感谢!唯一的问题是Hg在Hg pull
和Hg push
期间多次打印“警告:指纹为81:..:fe的something.com证书未经验证(请检查hostfingerprints或web.c acerts配置设置)”
。因此我最终决定使用[hostfingerprints]的方法
section.[hostfingerprinst]更棒的是,您可以将它们放在存储库hgrc而不是根目录中,因此此更改不会影响所有rest存储库。在我的特定情况下,[web]caserts=
在存储库级别上不起作用。可能是我做错了什么。在Mercurial>=3.9web.cacerts=!选项已被删除。谢谢你发布这个。这正是我所需要的。关于使用bash获取服务器指纹,有一个很好的问题:这里的命令:openssl s_client-connect:/dev/null | openssl x509-fingerprint-noout-in/dev/stdin
Mine必须进入~/.hgrc即使在内部调用Mercurial(没有参数)时也可以工作-来自IntelliJ IDEA。
[hostsecurity]
<host>:fingerprints=sha256:<hash>
openssl s_client -connect <host>:<port> < /dev/null 2>/dev/null | openssl x509 -fingerprint -sha256 -noout -in /dev/stdin
SHA256 Fingerprint=<hash>
[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