Select Page
WireShark-在Windows內如何解密https

WireShark-在Windows內如何解密https

Wireshark 是一款功能強大的網絡協議分析工具,可以幫助我們深入了解網絡流量,在日常使用中,我們有時需要檢查 HTTPS 流量,這些流量通常是加密的,通過配置 Wireshark,我們可以抓取並解碼 SSL/TLS 的加密資訊。

步驟 1:下載並安裝 Wireshark

首先,從 Wireshark 官方網站 下載適合您系統的安裝包,並完成安裝。安裝過程中,建議選擇安裝 WinPcap 或 Npcap,這是用於抓取網絡數據包的必要工具。

步驟 2:在 Windows 中設置用戶變量

要讓瀏覽器記錄 SSL/TLS 的密鑰,我們需要設置環境變量。

  1. 新增用戶變量
    • 打開「系統屬性」>「高級系統設置」>「環境變量」。
    • 在「用戶變量」區域中,點擊「新增」。
  2. 設置變量名稱與變量值
    • 變量名SSLKEYLOGFILE
    • 變量值C:\logs
  3. 點擊「確定」保存變量。

步驟 3:使用 Chrome 訪問 HTTPS 網頁

  1. 打開 Google Chrome 瀏覽器。
  2. 瀏覽任意 HTTPS 網頁(例如 https://example.com)。
  3. 在剛才設置的 C:\logs 路徑下,會生成一個名為 sslkeylog.log 的文件。
    該文件包含了瀏覽器和服務器之間進行加密通信的 Premaster Secret。

這個設置的作用是讓支持 SSLKEYLOGFILE 的應用程序(例如 Chrome)記錄密鑰到指定文件中。

步驟 4:配置 Wireshark 解碼 SSL 流量

接下來,我們需要將生成的密鑰文件導入 Wireshark,以便解碼 HTTPS 流量。

  1. 打開 Wireshark。
  2. 點擊選單中的「編輯」>「首選項」。
  3. 在彈出的「首選項」窗口中:
    • 展開左側的「Protocols」。
    • 找到並選擇「TLS」協議。
  4. 在右側的「(Pre)-Master-Secret log filename」欄位中,填入生成的 sslkeylog.log 文件的完整路徑,例如:

步驟 5:開始抓取 HTTPS 流量

  1. 在 Wireshark 中選擇網絡介面(例如 Wi-Fi 或有線網絡)。
  2. 點擊「開始捕獲」按鈕(或快捷鍵 Ctrl+E)。
  3. 打開瀏覽器並訪問任意 HTTPS 網頁。

步驟 6:檢查解碼的內容

  1. 在抓取的數據包中,選擇任意 Client HelloServer Hello 消息。
  2. Wireshark 會根據 sslkeylog.log 自動解碼加密的數據流,您可以在「解碼」區域中看到未加密的數據內容。
Windows server IIS PHP Curl SSL Certificate 錯誤修正

Windows server IIS PHP Curl SSL Certificate 錯誤修正

WordPress 最好還是安裝在 Linux 下比較少問題,但非得要用到 Windows IIS 的時候,要注意現在 php 程式設計師很喜歡用 curl 在讀取資料,當你用 curl 讀取 SSL 加密(現在還有那個網站沒有)的時候,應該是會收到 PHP Curl SSL Certificate Problem: Unable to get local issuer certificate 錯誤訊息,解決方法如下

下載 pem 檔案

https://curl.se/docs/caextract.html

https://curl.se/ca/cacert.pem

將檔案放在 php 下的 SSL 目錄中

copy cacert.pem C:\php8\extras\ssl\

修改 php.ini

打開 php.ini 找到 curl.cainfo = ,加入你 cacert.pem 的路徑

重新啟動 IIS

1.回收 Application Pools

2.重啟網站

之後就可以使用了

如何在 Ubuntu 20 中啟用免費的 https 憑證,使用 Let’s Encrypt 以及 Nginx

現在網站沒有支援 https ,肯定是扣分項目,並且想要支援 https 已經不像是以往,一定需要去購買 SSL 憑證,大多數應用下會採用 Let’s Encrypt 的服務,本文是要介紹 Ubuntu 下替 Nginx 安裝 SSL 憑證的方法。


安裝憑證的準備工作

首先確認是否有網域名稱,也就是在DNS伺服器中擁有對應的 A Record,舉例如下:

  • A Record rain.tips XXX.XXX.XXX.XXX
  • A Record www.rain.tips XXX.XXX.XXX.XXX

並且在 Nginx 中已經設定好該網站,可以在瀏覽器中打入 rain.tips 後可以正常瀏覽


安裝 Let’s Encrypt

首先安裝憑證機器人 certbot 來支援安裝 SSL 憑證

sudo apt install certbot python3-certbot-nginx

利用 Certbot 取得憑證

找出的你主機名稱,也就是在 Nginx 中的 conf 檔案內定義的 Server Name,像我的是rain.tips,然後利用下面的指令建立憑證,-d 後面要帶入網域的名稱

sudo certbot --nginx -d rain.tips -d www.rain.tips

接下來就可以跟著交談視窗一步一步建立起憑證

  • 輸入 Email
  • 同意合約
  • 是否要公開 EMAIL
  • 設定 http 是否要轉址到 https,建議一般情況下是設定 Redirect

到此就大功告成了,有防火牆的記得要去開啟下


檢查 Certbot 的自動更新是否正常

因為 Let’s Encrypt 每三個月要 renew 一次,現在的 Certbot 都會自動的啟用自動更新,但避免出意外,可以利用下面指令確認下是否有設定正常。

sudo systemctl status certbot.timer

手動更新憑證

sudo certbot renew --dry-run

確認憑證狀態

sudo certbot certificates

到此就大功告成,參考資料如下

How To Secure Nginx with Let’s Encrypt on Ubuntu 20.04

How to Secure Nginx with Let’s Encrypt On Ubuntu 20.04 / 18.04