by Rain Chu | 1 月 3, 2025 | MIS
Wireshark 是一款功能強大的網絡協議分析工具,可以幫助我們深入了解網絡流量,在日常使用中,我們有時需要檢查 HTTPS 流量,這些流量通常是加密的,通過配置 Wireshark,我們可以抓取並解碼 SSL/TLS 的加密資訊。
步驟 1:下載並安裝 Wireshark
首先,從 Wireshark 官方網站 下載適合您系統的安裝包,並完成安裝。安裝過程中,建議選擇安裝 WinPcap 或 Npcap,這是用於抓取網絡數據包的必要工具。
步驟 2:在 Windows 中設置用戶變量
要讓瀏覽器記錄 SSL/TLS 的密鑰,我們需要設置環境變量。
- 新增用戶變量:
- 打開「系統屬性」>「高級系統設置」>「環境變量」。
- 在「用戶變量」區域中,點擊「新增」。
- 設置變量名稱與變量值:
- 變量名:
SSLKEYLOGFILE
- 變量值:
C:\logs
- 點擊「確定」保存變量。
步驟 3:使用 Chrome 訪問 HTTPS 網頁
- 打開 Google Chrome 瀏覽器。
- 瀏覽任意 HTTPS 網頁(例如 https://example.com)。
- 在剛才設置的
C:\logs
路徑下,會生成一個名為 sslkeylog.log
的文件。
該文件包含了瀏覽器和服務器之間進行加密通信的 Premaster Secret。
這個設置的作用是讓支持 SSLKEYLOGFILE 的應用程序(例如 Chrome)記錄密鑰到指定文件中。
步驟 4:配置 Wireshark 解碼 SSL 流量
接下來,我們需要將生成的密鑰文件導入 Wireshark,以便解碼 HTTPS 流量。
- 打開 Wireshark。
- 點擊選單中的「編輯」>「首選項」。
- 在彈出的「首選項」窗口中:
- 展開左側的「Protocols」。
- 找到並選擇「TLS」協議。
- 在右側的「(Pre)-Master-Secret log filename」欄位中,填入生成的
sslkeylog.log
文件的完整路徑,例如:
步驟 5:開始抓取 HTTPS 流量
- 在 Wireshark 中選擇網絡介面(例如 Wi-Fi 或有線網絡)。
- 點擊「開始捕獲」按鈕(或快捷鍵
Ctrl+E
)。
- 打開瀏覽器並訪問任意 HTTPS 網頁。
步驟 6:檢查解碼的內容
- 在抓取的數據包中,選擇任意
Client Hello
或 Server Hello
消息。
- Wireshark 會根據
sslkeylog.log
自動解碼加密的數據流,您可以在「解碼」區域中看到未加密的數據內容。
by Rain Chu | 5 月 8, 2023 | PHP, 程式
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.重啟網站
之後就可以使用了
by Rain Chu | 11 月 9, 2021 | Linux, Nginx, SERVER, Ubuntu
現在網站沒有支援 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
近期留言