2011-01-06 137 views

回答

9

的keytool -list -v -keystore 「cacerts.bks」 -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath 「bcprov-jdk16-146.jar」 - BKS的storetype -storepass「」

0

你可以安裝證書的列表,從代碼的Android設備:在您的onCreate()方法,包括下面的代碼:

對於設備預冰淇淋三明治(API < 14):

TrustManagerFactory tmf; 
    try { 
     tmf = TrustManagerFactory.getInstance(TrustManagerFactory 
       .getDefaultAlgorithm()); 

     tmf.init((KeyStore) null); 

     X509TrustManager xtm = (X509TrustManager) tmf.getTrustManagers()[0]; 
     for (X509Certificate cert : xtm.getAcceptedIssuers()) { 
      String certStr = "S:" + cert.getSubjectDN().getName() + "\nI:" 
        + cert.getIssuerDN().getName(); 
      Log.d(LOG_TAG, certStr); 
     } 
    } catch (NoSuchAlgorithmException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (KeyStoreException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

對於Android 4.0的設備和向上(API> = 14):

try 
    { 
     KeyStore ks = KeyStore.getInstance("AndroidCAStore"); 
     if (ks != null) 
     { 
      ks.load(null, null); 
      Enumeration aliases = ks.aliases(); 
      while (aliases.hasMoreElements()) 
      { 
       String alias = (String) aliases.nextElement(); 
       java.security.cert.X509Certificate cert = (java.security.cert.X509Certificate) ks.getCertificate(alias); 

       Log.d(LOG_TAG, cert.getIssuerDN().getName()); 
      } 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (KeyStoreException e) { 
     e.printStackTrace(); 
    } catch (NoSuchAlgorithmException e) { 
     e.printStackTrace(); 
    } catch (java.security.cert.CertificateException e) { 
     e.printStackTrace(); 
    }