有誰知道如何查看Android設備支持的根證書列表嗎? 我想查看這些信息。如何查看內容cacerts.bks(證書文件/system/etc/security/carcerts.bks)
我發現/system/etc/security/carcerts.bks
包含根證書信息, 但我無法使用任何可用的編輯器解碼內容。
我也嘗試了KeyTool,但無法成功。
請建議如何解碼此文件的內容。
問候,
杜爾加
有誰知道如何查看Android設備支持的根證書列表嗎? 我想查看這些信息。如何查看內容cacerts.bks(證書文件/system/etc/security/carcerts.bks)
我發現/system/etc/security/carcerts.bks
包含根證書信息, 但我無法使用任何可用的編輯器解碼內容。
我也嘗試了KeyTool,但無法成功。
請建議如何解碼此文件的內容。
問候,
杜爾加
的keytool -list -v -keystore 「cacerts.bks」 -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath 「bcprov-jdk16-146.jar」 - BKS的storetype -storepass「」
你可以安裝證書的列表,從代碼的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();
}
如果你不想成爲一個專家誰總是寫腳本/代碼做他想做的事。
這是爲你推薦的GUI工具密鑰庫:http://www.keystore-explorer.org/downloads.html
這是工作:d感謝 – Amit 2017-05-05 21:39:10