如何在 Linux 上調試 HTTP/HTTPS 流量

在本文中,我們將深入研究如何在 Linux 系統上調試 HTTP/HTTPS 流量。 我們將介紹 OpenSSL 和 跟踪文件 腳本。 htrace.sh 是一個簡單的 shell 腳本,用於調試 HTTP/https 流量跟踪。

此外,它還可以用於使用外部安全工具(主要是 Mozilla Observatory 和 SSL Labs API)掃描域. 另一方面,OpenSSL 是一個加密工具包,它依賴 SSL(V2 和 3)和 TLS v1 協議來調試流量。

1) 使用 htrace 腳本

shell 腳本用於檢查基本 SSL 配置、Web 服務器和反向代理的域配置、運行的每個查詢的響應標頭以及進行重定向分析,以消除重定向循環。 此外,可以使用簡單的 shell 腳本命令顯示更詳細的信息。 這包括

  • 遠程地址
  • HTTP版本
  • 網站運行的服務器
  • 內容類型
  • 內容編碼

要求

在繼續之前,請確保您的系統中安裝了以下內容

  1. 捲曲 7.49 及更高版本
  2. 開放式SSL
  3. 吉特

htrace.sh 腳本的安裝和運行

首先,克隆 htrace 存儲庫

git clone https://github.com/trimstray/htrace.sh

輸出

Cloning into 'htrace.sh'...
remote: Counting objects: 300, done.
remote: Compressing objects: 100% (141/141), done.
remote: Total 300 (delta 151), reused 288 (delta 139), pack-reused 0
Receiving objects: 100% (300/300), 421.03 KiB | 0 bytes/s, done.
Resolving deltas: 100% (151/151), done.
Checking connectivity... done.

導航到 htrace 目錄

cd htrace.sh

接下來,使用以下命令安裝 htrace

./setup.sh install

輸出

Create symbolic link to /usr/local/bin
Create man page to /usr/local/man/man8

htrace 的使用

現在,我們可以運行應用程序並測試域。 命令的語法是

htrace.sh --domain https://example.com

其他選項包括

Options:
--help show this message
-d|--domain set domain name
-h|--headers show response headers

在下面的命令中,我們將測試 google.com

htrace.sh --domain https://google.com --headers

輸出

下面的輸出來自 nmap.org 站點

2) 使用 OpenSSL

除了使用 htrace.sh shell 腳本之外,您還可以使用 OpenSSL 從 shell 提示符調試 SSL 證書問題。 OpenSSL 是一個強大的通用加密工具包,它使用安全套接字層 (SSL v2/v3) 和傳輸層安全 (TLS v1) 網絡協議。 還包括 openssl 可用於調試 SSL 證書問題的命令。

用法

openssl s_client -connect ssl.servername.com:443

下面是一個 example 如何使用該命令在端口 443 上連接到 linoxide.com

openssl s_client -connect www.linoxide.com:443

樣本輸出

CONNECTED(00000003)
depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify return:1
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO ECC Certification Authority
verify return:1
depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO ECC Domain Validation Secure Server CA 2
verify return:1
depth=0 OU = Domain Control Validated, OU = PositiveSSL Multi-Domain, CN = ssl374062.cloudflaressl.com
verify return:1
---
Certificate chain
0 s:/OU=Domain Control Validated/OU=PositiveSSL Multi-Domain/CN=ssl374062.cloudflaressl.com
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO ECC Domain Validation Secure Server CA 2
1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO ECC Domain Validation Secure Server CA 2
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO ECC Certification Authority
2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO ECC Certification Authority
i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
---
Server certificate
-----BEGIN CERTIFICATE-----

這就是我們今天為您準備的全部內容。 隨意嘗試 htrace.sh shell 腳本和 openssl 命令來調試 SSL 證書。 與往常一樣,您的反饋很有價值,也很受歡迎。