Curl

curl –insecure 不工作

  • December 10, 2021

我需要在代理後面執行以下內容:

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

哪個返回了與 SSL 相關的錯誤(因為代理將其證書放在兩者之間)。我使用了“–insecure”並重新執行,這在一定程度上可以工作,但是-稍後在該安裝腳本中,再次呼叫 curl,並返回相同的 SSL 錯誤。

我在 ~/.curlrc 中添加了“不安全”,以便呼叫腳本將忽略 SSL 錯誤..但是它們仍然會被拋出..如果我從一開始就放棄 –insecure 它仍然有效(驗證 .curlrc 工作)..所以我認為這一定是權限問題..

Ran ‘chmod 666 .curlrc’ 並使用 ’ls -l’ 驗證了所有的 rw - 結果相同。如何忽略這些 SSL 錯誤?

您的問題是您以自己的身份捲曲腳本,然後腳本以 root 身份執行:

| sudo bash

當您將某些內容輸入sudo bash時,您將以 root 身份執行 bash,並且 bash 將以 root 身份啟動所有子程序(包括curl腳本中的 s)。由於 root 的帳戶不關心您的.curlrc,它不會讀取它,也不會應用您的--insecure. 你有幾個選擇:

  1. 單獨下載腳本並執行它並修改包含的行curl(在撰寫本文時第 137 和 182 行)
  2. 使用內容.curlrc為root創建一個文件/root/.curlrc``insecure

編輯:

順便說一句,通常不建議在您的主目錄中包含特定於應用程序的配置文件 be o+wr,因為這將允許任何登錄系統的人修改您的個人配置。你說你跑了chmod 666 .curlrc,但這是不可取的,因為系統上的任何人(假設你的主目錄是o+rx)都可以修改你的 curl 配置,包括設置一個特定於 curl 的 socks 代理和他們 MiTM 所有你的 curl 流量。這尤其危險,因為它們可能會剝離 SSL,而您不會注意到,因為您已經忽略了自己系統代理的不安全連接。

引用自:https://serverfault.com/questions/1085861