我開發了一個需要與服務器進行安全通信的android應用程序。我得到關於不受信任的服務器的例外,因爲我的服務器證書不是Android的證書列表的一部分。Android ICS - 僅當CA證書安裝提示不存在時才顯示CA證書安裝提示
我利用以下KeyChain API(從ICS開始提供)來提示用戶進行證書安裝,之後通信無縫工作。
BufferedInputStream bis = new BufferedInputStream(getAssets().open(
PKCS12_FILENAME));
byte[] keychain = new byte[bis.available()];
bis.read(keychain);
Intent installIntent = KeyChain.createInstallIntent();
installIntent.putExtra(KeyChain.EXTRA_PKCS12, keychain);
installIntent.putExtra(KeyChain.EXTRA_NAME, DEFAULT_ALIAS);
startActivityForResult(installIntent, INSTALL_KEYCHAIN_CODE);
我在應用程序啓動時使用上述代碼,即使證書已經存在,它也會提示。關於此問題,我有以下兩個問題,
編程方式如何識別特定證書是否已經存在?所以我只有在它不存在時纔會提示。
在應用程序安裝過程中是否發生了任何事件,我應該使用它來提示用戶進行證書安裝?
在幾天前有一個類似的問題,不知道它是否被回答。是否可以簡單*嘗試*通信並攔截缺少證書的安全例外情況? – 323go 2013-02-17 18:46:50