curl --insecure 不起作用

curl --insecure 不起作用

我需要在代理后面运行以下命令:

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash

返回了与 SSL 相关的错误(因为代理将其证书放在中间)。我使用了“--insecure”并重新运行,这在一定程度上是可行的,但是 - 稍后在该安装脚本中,curl 再次被调用,并返回相同的 SSL 错误。

我在 ~/.curlrc 中添加了“insecure”,这样调用脚本就会忽略 SSL 错误。但是它们仍然被抛出。如果我从一开始就删除 --insecure,它仍然有效(验证 .curlrc 正常工作)。所以我认为这一定是权限问题。

运行“chmod 666 .curlrc”并使用“ls -l”验证所有 rw - 结果相同..我如何忽略这些 SSL 错误?

答案1

您的问题是,您以自己的身份卷曲脚本,然后以 root 身份运行该脚本:

| sudo bash

当您将某些内容通过管道传输到 时sudo bash,您将以 root 身份运行 bash,并且 bash 将以curlroot 身份启动所有子进程(包括脚本内的 s)。由于 root 帐户不关心您的.curlrc,因此它不会读取它,也不会应用您的--insecure。您有几个选择:

  1. 下载并运行该脚本,并修改包含以下内容的行curl(撰写本文时为第 137 行和第 182 行)
  2. .curlrc为 root创建一个文件/root/.curlrc,内容如下insecure

编辑:

另外,通常不建议将特定于应用程序的配置文件放在您的主目录中o+wr,因为这将允许任何具有系统登录名的人修改您的个人配置。您说您运行了,chmod 666 .curlrc但这是不可取的,因为这样系统上的任何人(假设您的主目录是o+rx)都可以修改您的 curl 配置,包括设置特定于 curl 的 socks 代理,然后他们 MiTM 您的所有 curl 流量。这尤其危险,因为他们可能会剥离 SSL,而您不会注意到,因为您已经忽略了自己系统代理的不安全连接。

相关内容