如何在Android設備上安裝可信CA證書?我已經創建了自己的CA證書,現在我想在我的Android Froyo設備(HTC Desire Z)上安裝它,以便設備信任我的證書。Android將CA證書存儲在其Java密鑰庫中/system/etc/security/cacerts.bks。我將文件復制到我的計算機,使用portecle 1.5添加了我的證書并將其推回到設備?,F在,Android似乎沒有自動重新加載文件。我在幾篇博客文章中看到我需要重啟設備。這樣做會導致文件再次被原始文件覆蓋。我的下一個嘗試是通過復制它并使用設置菜單中的相應選項從SD卡安裝證書。設備告訴我證書已經安裝,但顯然它不信任證書。此外,當我嘗試將密鑰庫復制到我的計算機時,我仍然可以找到原始庫存cacerts.bks。那么,在Android 2.2設備上安裝我自己的根CA證書作為可信證書的正確方法是什么?有沒有辦法以編程方式進行?
3 回答

楊__羊羊
TA貢獻1943條經驗 獲得超7個贊
如果您需要HTTPS連接證書,則可以將.bks文件作為原始資源添加到應用程序并擴展DefaultHttpConnection,以便將證書用于HTTPS連接。
public class MyHttpClient extends DefaultHttpClient { private Resources _resources; public MyHttpClient(Resources resources) { _resources = resources; } @Override protected ClientConnectionManager createClientConnectionManager() { SchemeRegistry registry = new SchemeRegistry(); registry.register(new Scheme("http", PlainSocketFactory .getSocketFactory(), 80)); if (_resources != null) { registry.register(new Scheme("https", newSslSocketFactory(), 443)); } else { registry.register(new Scheme("https", SSLSocketFactory .getSocketFactory(), 443)); } return new SingleClientConnManager(getParams(), registry); } private SSLSocketFactory newSslSocketFactory() { try { KeyStore trusted = KeyStore.getInstance("BKS"); InputStream in = _resources.openRawResource(R.raw.mystore); try { trusted.load(in, "pwd".toCharArray()); } finally { in.close(); } return new SSLSocketFactory(trusted); } catch (Exception e) { throw new AssertionError(e); } }}
- 3 回答
- 0 關注
- 1815 瀏覽
添加回答
舉報
0/150
提交
取消