一:HTTP和HTTPS的區別
HTTP是超文本傳輸協議,被用在Web瀏覽器和網站服務器之間傳遞信息,HTTP協議以明文方式發送內容,不提供任何方式的數據加密,因此HTTP協議不適合傳輸一些敏感信息,如:信用卡號,密碼等支付信息。為了保證這些隱私數據能加密傳輸,於是網景公司設計了SSL用於對HTTP協議傳輸的數據進行加密,從而誕生了HTTPS。
兩者主要區別:
1.https協議需要到CA申請證書,一般免費證書較少,因而需要一定費用。個人網站、小網站沒有必要用。
2.http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的SSL加密傳輸協議(https也不是絕對的安全,在黑客攻擊,拒絕服務攻擊,服務器劫持等方面幾乎不起作用,最關鍵的SSL證書的信用鏈體系並不安全,特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣即可)。
3.http和https使用的是完全不同的連接方式,用的端口也不一樣,http是80,https是443。
4.https的連接很簡單,是無狀態的,https協議是SSL+HTTP協議構建的可進行加密傳輸,身份認證的網絡協議。
5.https連接緩存不如http高效,會增加數據開銷和功耗,甚至已有的安全措施也因此會受到影響。
6.https協議握手階段比較費時。
二:Charles PC端截取HTTP和HTTPS協議請求(抓包實戰)
抓包前注意事項:
抓包步驟:
1.首選保證Charles開啟,其它你想抓包的工具也開啟,之后找到Charles的Proxy選項中的Start Recoding選項和Windows Proxy(mac電腦的是macOS Proxy),在進行測試的過程中發現不管我的win電腦勾選不勾選Windows Proxy,都可以抓取電腦上的包,經過跟幾個搞測試的朋友交流,他們的都是正常的,所以少數服從多數,按不勾選Windows Proxy只能抓取手機上app的包,電腦上的包抓取不到。經過測試蘋果電腦不勾選macOS Proxy的情況下是不能抓取電腦上的包的,勾選后就可以了。
2.用瀏覽器打開你想要截取的網址
3.對於HTTPS協議出現的中文亂碼,Charles在電腦端安裝charles ca證書,之后修改菜單項Proxy中Proxy Settings 和SSL Proxying Settings...選項,否則即使安裝了charles ca證書依然不能正常顯示
下圖為win電腦安裝charles ca證書
下圖為蘋果電腦安裝charles ca證書
三:Charles 手機端(安卓,蘋果機沒有,以后補上)截取HTTP和HTTPS協議請求(包含手機端小程序抓包)
1.Charles想要抓取手機上的包,就要進行一些配置,首先查看Charles所在電腦的ip,兩種方式可以
方式1:
方式2:
2.查看Charles的端口號,找到Proxy選項,選中Proxy Settings可以看到默認是:8888
3.手機打開同一局域網下最好同網段(有些是同一局域網但是不在同一個網段,比如我的win是台式的,插的網線,手機是連的公司一個路由器的wifi,結果就連不上抓不了包,無奈我就用了蘋果電腦跟手機連同一個wifi,一下就連上去了),設置手動代理,輸入電腦的ip和Charles的端口號。結束后不要忘記更改手機代理,否則手機無法正常上網。
4.安卓(vivoX6)手機端安裝charles ca證書(前提條件是電腦端也要安裝charles ca證書),首選根據charles中help選項中的提示,用手機瀏覽器(本人手機上選用的是uc瀏覽器),打開chls.pro/ssl (手機設置了charles代理,否則打開的網址提示錯誤)。下載后是pem文件,不能被我的手機識別安裝,所以我就更改了后綴名.crt文件,安裝后,由於不被信任,抓取的https協議的依然提示unknown,經過上網查找,問題沒有解決。同事的小米華為手機都ok。
四:Charles HTTPS協議通用抓包配置規則
在上面我們講到要想抓取某個https協議的內容,在SSL Proxy Settings選項里面添加某個https協議的網址和端口號即可,但是這樣可能會有點麻煩,要想截取所有的https協議怎么辦?看下圖(手機端電腦端通用)