一: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協議構建的可進行加密傳輸,身份認證的網絡協議。app
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協議怎麼辦?看下圖(手機端電腦端通用)