2011-03-20 26 views

回答

25

[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

17

您可以使用aliases來實現這一目標。添加到您的.hgrc

[alias] 
push = push --insecure 

問題是你是預示了爲你想使用我建議你不是默認的一個使用不同的名稱爲您的別名每個命令執行此操作。

據我所知,沒有辦法爲「自動」執行--insecure所有命令。

+0

即使Mercurial在內部被調用(不帶參數) - 從IntelliJ IDEA開始工作。 – 2017-01-12 06:13:20

33

如果你的目標是推動中消除證書指紋警告/拉,有一個更好的方式來做到這一點。使用.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://stackoverflow.com/a/5165073/1760643 這裏該命令: '的OpenSSL的s_client.First -connect <的/ dev /空2>/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