在手機鏈接pc的fiddler後,安卓微信打不開https頁面,安卓的瀏覽器、qq等均可以正常訪問https,ios也均可以,就只有安卓微信放問https是空白頁面html
鏈接抓包工具沒法訪問https的,首先判斷是證書問題。在瀏覽器訪問 10.0.0.99:8888 ,點擊最下面的證書進行安裝ios
安裝好證書後,發現仍然訪問不了。瀏覽器
從新整理思路,安卓瀏覽器和qq等均可以正常訪問https說明證書配置是正確的。惟獨在微信訪問異常,在百度後查到有其餘人遇到相似的問題,說是證書鏈不完整,致使瀏覽器沒法信任你安裝的證書。緩存
證書鏈其實就是描述證書的簽名環節,就好比是 A 頒發證書給 B ,B頒發證書給C,而後咱們手裏的就是 證書C。當證書鏈不完整的狀況下,也就是沒有描述咱們手中的證書C是由誰辦法的,因此致使的瀏覽器不認爲你這個證書是可信的受權證書。服務器
openssl s_client -connect x.x.x.x:443 // s_client爲一個SSL/TLS客戶端程序,與s_server對應,它不只能與s_server進行通訊,也能與任何使用ssl協議的其餘服務程序進行通訊。 // -connect host:port:設置服務器地址和端口號。若是沒有設置,則默認爲本地主機以及端口號4433。
鏈接內網的IP後:微信
其中0、1是證書鏈中每一級證書的序號。0是要被驗證的網站所用的證書。其CN對應網站域名。工具
每個序號後面,s 開頭的一行是指證書,i 開頭的一行是指此證書由誰簽發。測試
0 的CN包含一個英文域名 static.xxx.com 。它的簽發者是 TrustAsia Technologies, Inc./OU=Symantec Trust Network/OU=Domain Validated SSL/CN=TrustAsia DV SSL CA 網站
1 的證書就是0的簽發者。而1本身又是由另外一個證書 VeriSign Class 3 Public Primary Certification Authority 簽發的。加密
因此這麼一級級看下來,瀏覽器認爲,1的簽發者我認識,安裝包裏有提到,VeriSIign嘛。簽名正確、驗證無誤,因此信任1。那麼也應該信任1簽發的0。因此這個網站能夠信任。
然而,若是網站配置時,在crt文件中只包含了本身,而沒包含一個完整到能夠被瀏覽器內置數據驗證的證書鏈,就有可能被瀏覽器拒絕。好比
openssl s_client -connecttouko.moe:443 --- Certificate chain 0 s:/CN=touko.moe i:/C=CN/O=WoSign CALimited/CN=WoSign CA Free SSL CertificateG2 ---
只有0一組。說明s行中的touko.moe由 i 行中的WoSign CA Free SSL CertificateG2簽發。沒了。
這就是此坑最神奇之處:瀏覽器此時是否驗證失敗,是不必定的。有2種狀況:
A、瀏覽器自安裝以來,從未見過這個i。那麼驗證會失敗。
B、瀏覽器之前見過、而且驗證過i,那麼驗證會成功。
一般管理員本身會去證書發行商的https網站買證書,瀏覽器就會驗證,而後將驗證成功的中間證書全都緩存下來,爲之後節省時間。當管理員(錯誤地)配置完本身的網站,去瀏覽測試的時候,徹底不會遇到問題。由於他的瀏覽器已經認識這個中間證書了。
經過證書鏈驗證發現,咱們內網的證書鏈是完整無誤的。
再次整理思路,用安卓微信訪問其餘的https網站好比百度、csdn等都是空白頁,若是是咱們的證書鏈問題,那其餘網站的證書鏈是應該沒問題的,爲何也訪問不了?因此證書鏈問題徹底排除掉。
那既然不是本地證書問題,也不是咱們服務端證書鏈問題,qq、瀏覽器又都能正常訪問,ios也正常,說明fiddler端是沒問題的,這個時候懷疑是否是微信本身的問題?
fiddler巧妙就巧妙在僞造CA證書的地方了,我(fiddler)本身編造一個私鑰和公鑰,做爲簽名憑證發送給瀏覽器,提交到服務端,服務端根據公鑰簽名返回,我(fiddler)僞造的密鑰,天然就能解開了。
因此,你知道,我知道,你們都知道,爲了防止軟件被fiddler抓包,開發者會內置SSL證書,直接經過本身的證書籤名加密,而不去採用系統的CA證書,這樣就不會被僞造的證書來騙取信息,天然而然,fiddler就沒辦法抓到這些自帶證書的軟件數據了。
而微信極有可能自帶https證書驗證,沒有使用因此fiddler沒辦法抓到微信內https網頁的信息。
而以前的微信是能夠正常抓取https的,今天卻忽然不行,想到前兩天微信剛剛升級到了7.0,會不會是新版新增的限制呢?
因而找來安卓6.7.3的微信進行驗證,發現時正常的,只有最新版7.0不行。
-----------------------------------------
參考文章:
https://www.dadiaoge.com/fiddler-wechat-https.html
https://blog.csdn.net/u014145985/article/details/80997023
https://blog.csdn.net/qq_24033949/article/details/52891146
原文出處:https://www.cnblogs.com/saysmy/p/10240050.html