有人知道如何查看Android设备支持的根证书列表吗?我想看看这些信息。
我发现/system/etc/security/cacerts.bks包含根证书信息,但我无法使用任何可用的编辑器对内容进行解码。
我也尝试过KeyTool,但不能成功。
请建议如何解码此文件的内容。
致以敬意,
杜尔加
发布于 2013-02-14 02:43:31
org.bouncycastle.jce.provider.BouncyCastleProvider -list -v -keystore "cacerts.bks“-provider keytool -providerpath "bcprov-jdk16-146.jar”-storetype BKS -storepass "“
发布于 2016-12-16 09:21:28
如果你不想成为一个总是编写脚本/代码来做他想做的事情的专家。
这是为您推荐的图形用户界面密钥库工具:http://www.keystore-explorer.org/downloads.html
发布于 2015-09-10 18:26:57
您可以通过以下代码获取安卓设备中已安装证书的列表:在onCreate()方法中,包含以下代码:
适用于IceCream三明治之前设备的 (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及以上设备的(接口>= 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();
}https://stackoverflow.com/questions/4620134
复制相似问题