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

WireShark-在Windows內如何解密https

Views: 51

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 錯誤修正

Views: 22

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

Views: 79

現在網站沒有支援 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