Linux系統下使用curl進行Https連線


概述

curl是一個命令列工具,支援多種型別的網站,包括https網站。它可以用於連線任何網站,但最常用於連線Web伺服器並從中檢索資料。在本教程中,我們將學習如何使用curl與網站建立HTTPS連線。我們還將瞭解如何使用curl檢索檔案內容。

我們將瞭解如何使用curl透過HTTPS呼叫HTTP端點。

什麼是Curl?

Curl是一個命令列工具,允許使用者使用各種協議(包括HTTP、HTTPS、FTP等)從伺服器傳輸資料到伺服器或從伺服器傳輸資料。它支援多種型別的網站,可用於連線任何網站。Curl通常用於連線Web伺服器並從中檢索資料。

curl的主要功能包括:

  • 從FTP或HTTP伺服器下載檔案

  • 將檔案上傳到FTP或HTTP伺服器

  • 獲取頁面(GET)

  • 上傳頁面(POST)

  • 使用使用者身份驗證進行POST請求

  • 傳送cookie

  • 登入遠端計算機

  • 檢索表單資訊

  • 檢視幫助文件

  • Curl入門

要開始使用curl,您需要先安裝它。

受信任的CA簽名的SSL證書

建立HTTPS連線時,務必確保您連線到的伺服器是受信任的。這可以透過驗證伺服器的SSL證書來完成。證書必須由受信任的證書頒發機構(CA)簽名。如果證書未由受信任的CA簽名,則您的連線將不安全,並且透過連線傳送的任何資料都可能被攔截。

curl最簡單的語法是curl <URL>。讓我們使用curl發出請求來呼叫HTTPS端點:

curl https://tutorialspoint.tw

如果curl發出GET請求並順利收到頁面原始碼,則伺服器可能正在使用受信任的CA簽名的SSL證書,這意味著它已透過可靠的機構驗證。

自簽名證書

如果Web服務使用SSL/TLS連線,但不使用有效的SSL/TLS證書,則我們可能會看到類似於“SSL握手失敗”的錯誤訊息。這通常表示Web服務未正確配置HTTPS連線。

如果我們正在為本地Spring Boot應用程式使用TLS,例如,我們正在使用SSL進行配置。

您可以透過新增-k或--insecure選項來忽略SSL/TLS證書檢查。

curl -k https://:8443/tpoint

但是,如果您忽略HTTPS錯誤,則可能會使自己容易受到攻擊。另一種方法是獲取要訪問的站點的證書。

獲取伺服器證書

單向SSL驗證會針對我們自己的本地副本驗證接收伺服器證書。因此,我們需要在本地系統上儲存伺服器證書。

要從SSL連接獲取伺服器證書列表,我們將使用showcerts引數執行openssl命令。

openssl s_client -showcerts -connect <Domain Name or IP Address>:<Port>

-showcert選項顯示整個SSL/TLS認證鏈。您可以將證書儲存到輸出檔案中,以便以後使用。

openssl s_client -showcerts -connect https://:8443/tpoint </dev/null | sed -n -e '/-.BEGIN/,/-.END/ p' > tpoint.pem

呼叫HTTPS端點

要訪問HTTPS端點,我們首先需要使用OpenSSL命令列工具或金鑰庫檔案從本地網站儲存BAEldung.pem檔案。

然後,我們將-cacert選項新增到curl命令中。

curl --cacert baeldung.pem https://:8443/tpoint

結論

我們解釋瞭如何使用curl命令列實用程式呼叫HTTP/HTTPS端點。

我們還討論瞭如何使用OpenSSL命令列工具獲取伺服器證書並將其儲存到檔案中。最後,我們展示瞭如何將-cacert選項與curl一起使用以訪問HTTPS端點。

使用curl是快速測試Web服務和API的好方法。它易於使用、速度快,可用於HTTP和HTTPS連線。

更新於:2023年1月3日

6000+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告