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 | 11 月 9, 2023 | Nginx, SERVER
Nginx 配置中的 client_max_body_size
參數會限制通過 HTTP 或 HTTPS 請求傳輸的最大消息體積。這個參數對所有客戶端請求體的大小都有影響,包括由 proxy_pass
轉發的文件上傳。
如果 client_max_body_size
沒有在 Nginx 配置中明確設定,則默認值通常是 1MB,這可能導致大於 1MB 的文件上傳失敗。若要允許更大的文件上傳,你需要在 Nginx 的 server
或 http
上下文中增加這個指令並設置一個足夠的值,
例如:
http {
...
client_max_body_size 100M;
...
}
或者在特定的 server
或 location
區塊中設定:
server {
...
client_max_body_size 100M;
...
}
修改後,記得重新載入或重啟 Nginx 使設定生效:
sudo nginx -t
sudo nginx -s reload
sudo systemctl restart nginx
這樣就可以讓使用者上傳超過1MB的檔案了
by Rain Chu | 4 月 28, 2023 | IIS, Windows
現在的網站一定都要有https的協定才會是安全的,SEO的分數也才會高,在IIS內可以直接透過 URL rewrite 來將 http 連線都轉換成 https 連線,過程比 nginx 要麻煩一點,但有圖形化的介面設定,也是蠻容易上手的
打開 IIS Manager 找到 URL Rewrite
先假設你已經完成了 URL Rewrite 的安裝,則可以在介面中看到 URL Rewrite的設定
建立新的規則 (Add Rule)
在右邊的 Actions 選擇 Add Rule(s),並且選擇 Blank rule
建立 Inbound Rule
如下圖,下拉方塊中選擇 Match URL,並且在 Pattern 中填入 (.*) ,然後移到下方 Conditions 選擇 Add
並且在 Condition input 填入 {HTTPS} ,在 Pattern 中填入 ^OFF$ ,下拉選單中則是選擇 Matches the Pattern
設定 Action
輸入網址的條件設定完之後,要來設定符合的網址要如何處理,如何做動作,參考下圖,Action type 的下拉選單,選擇 Redirect
並且在 Redirect URL 中,填入 https://{HTTP_HOST}/{R:1} ,並且到 Redirect type 下拉選單中選擇 Permanent(301) 後即可以存檔 (Apply)
Web.Config 中的 rewrite
用 iis manager 設定完畢後,你就可以在 web.config 中看到剛剛所做的設定
<rewrite>
<rules>
<clear />
<rule name="http2https" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
參考資料
https://aboutssl.org/iis-redirection-http-to-https/
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
近期留言