如果是chrome瀏覽器的數據流 直接配置”SSLKEYLOGFILE“就可以解密了。
實現過程:
1.配置系統環境變量
變量名:SSLKEYLOGFILE
變量值:隨意指定一個存儲路徑,以便chrome輸出keylog
2.配置Wireshark
填入你在系統變量中指定的keylog存儲路徑,以便wireshark訪問keylog中的key 從而解密https(ssl)
原理解析:
當你配置了”SSLKEYLOGFILE“這個環境變量,這意味着你告訴chrome 你想知道chrome每次https會話的key記錄,chrome將會在每次https會話結束后 將會話數據解密的key記錄到keylog文件中,Wireshark通過訪問keylog文件使用里面的key就可以解密自己捕獲到的chrome產生的https會話數據流。
非chrome的https數據流怎么解密呢?
可以通過服務器證書的RSA私鑰。
列程,我想要解密百度的https數據流
實現過程:
1.拿到百度的服務器證書
使用fiddler的中間人代理技術拿到含有私鑰的服務器證書。
1).打開fiddler並啟用https代理服務
2).用配置了fiddler代理的瀏覽器訪問百度
3).運行”certmgr.msc“打開證書管理器
4)從Personal/Certificates目錄下找到*.baidu.com的證書,右鍵所有任務-導出
2.取出證書中的私鑰
使用openssl取出私鑰。
1).將pfx證書轉為pem證書
命令行:openssl pkcs12 -in <pfx證書路徑> -nodes -out <輸出的pem證書路徑(.pem)>
2).從pem證書中取出私鑰
命令行:openssl rsa -in <pem證書路徑> -out <輸出的私鑰文件路徑(.key)>
3.將私鑰配置到wireshark
現在就可以解密與*.baidu.com相關的https數據流了!