使用cargo构建crate时SSL证书无效

7

在从教程中尝试一个示例(猜数字游戏)时,在定义依赖项后(rand="0.3.0"),我遇到了这个问题:

$ cargo build --verbose
    Updating registry `https://github.com/rust-lang/crates.io-index`
Unable to update registry https://github.com/rust-lang/crates.io-index

Caused by:
  failed to fetch `https://github.com/rust-lang/crates.io-index`

Caused by:
  [16] The SSL certificate is invalid

我将此添加到货物注册git仓库中,但没有成功:

[http]
    sslVerify = false

在哪里挖掘?


很奇怪你在Github.com上收到了SSL警告……你是否在SSL代理后面,从而中断了你的连接? - mdup
1
我怀疑是我的供应商在做这件事。问题是该怎么办... - Tuxdevo
7
更换网络服务提供商,这绝对是一个不期望的行为。 - rubenvb
6
补充@rubenvb的观点,如果你的互联网服务提供商修改你的SSL证书,那么你无法信任互联网上任何安全内容,如在线购物或银行业务。赶快逃离。你可能可以在某个地方公开他们的名字并批评他们。 - Shepmaster
1
看起来在Cargo中忽略SSL证书目前不受支持 - Shepmaster
谢谢,@Shepmaster。 - Tuxdevo
2个回答

1

今天我遇到了同样的问题,发现我的$HOME/.gitconfig文件有以下内容:

[url "git@github.com:"]
    insteadOf = https://github.com/

我曾添加了这段代码,以使go get能够在SSH上使用私有仓库。注释掉这一行就可以解决错误。

0

如评论中所述,这可能是介于您和Github之间的某个人修改了您的通信(MITM),或者您的系统存在配置错误(例如缺少证书)。 (Github方面的问题不太可能发生。)

首先尝试使用普通git进行调试:git clone https://github.com/rust-lang/crates.io-index.git

要获取有关失败原因的详细信息,请使用openssl s_client -debug -showcerts -connect github.com:443,如果它没有自行退出(因为连接成功),请按CTRL-C退出。 输出包含有关远程呈现的证书以及如何验证或无法验证的信息。

如果有人修改了您的通信,请发布此输出以及traceroute github.com或类似内容,以便其他人可以避免该提供程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接