Curl
curl –insecure 不工作
我需要在代理後面執行以下內容:
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
. 你有幾個選擇:
- 單獨下載腳本並執行它並修改包含的行
curl
(在撰寫本文時第 137 和 182 行)- 使用內容
.curlrc
為root創建一個文件/root/.curlrc``insecure
編輯:
順便說一句,通常不建議在您的主目錄中包含特定於應用程序的配置文件 be
o+wr
,因為這將允許任何登錄系統的人修改您的個人配置。你說你跑了chmod 666 .curlrc
,但這是不可取的,因為系統上的任何人(假設你的主目錄是o+rx
)都可以修改你的 curl 配置,包括設置一個特定於 curl 的 socks 代理和他們 MiTM 所有你的 curl 流量。這尤其危險,因為它們可能會剝離 SSL,而您不會注意到,因為您已經忽略了自己系統代理的不安全連接。