2017-07-10 40 views
3

我想代理我的手機運行Android 7.1.2,看看通過我正在使用的應用程序取得和發佈。使用CharlesProxy 4.1.4,這對於iOS設備來說很容易實現。但是,該應用在Android上的功能不同,我們想知道如何。Android的牛軋糖CharlesProxy SSL握手失敗

我已經配置我的設備,通過輸入IP和端口連接到Charles,然後導航到chls.pro/ssl以獲取CA證書。即使在chrome上,證書也會無故障地下載和安裝。我可以看到打給查爾斯的電話,但我看不到任何電話內容。相反,它被列爲<unknown>,說明SSLHandshake: Received fatal alert: certificate_unknown

有沒有另外一種方法我可以真正相信這個證書?或者有另一種方式成功地允許Android使用SSL?同樣,我的所有設置都可以在iOS設備上正常工作,所以我不需要該操作系統的示例。

感謝

+0

請提供[mcve]演示您的應用程序如何通過SSL進行通信。 – CommonsWare

+0

人們是否剛剛閱讀試圖在其中鑽出一些新問題?似乎在這裏工廠運行......我沒有使用任何代碼。我正在嘗試查看與我公司合作的公開訪問的應用程序的通話,但無法控制。 – tbw875

+0

「我沒有使用任何代碼」 - 那麼你的問題是脫離主題,因爲堆棧溢出是編程問題。 – CommonsWare

回答

1

由於Android的N,你需要增加配置到你的應用程序,以便有它信任由查爾斯SSL代理產生的SSL證書。這意味着您只能將SSL代理與您控制的應用程序一起使用。

爲了配置您的應用程序以信任Charles,您需要將Network Security Configuration File添加到您的應用程序。此文件可以覆蓋系統默認值,使您的應用程序可以信任用戶安裝的CA證書(例如Charles Root證書)。您可以指定這僅適用於應用程序的調試版本,以便生產版本使用默認的信任配置文件。

文件RES/XML/network_security_config.xml添加到您的應用程序:

<network-security-config> 
<debug-overrides> 
    <trust-anchors> 
     <!-- Trust user added CAs while debuggable only --> 
     <certificates src="user" /> 
    </trust-anchors> 
</debug-overrides> 

然後添加到該文件在您的應用程序的清單參考,具體如下:

<?xml version="1.0" encoding="utf-8"?> 

...

參考:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/