android - 列出所有在 android 上安装的证书

标签 android certificate

我正在编写一个应用程序,其中列出了安装的所有证书 设备。但是我发现有两个地方有证书 存储:

  1. System/etc/security/cacerts.bks:此文件包含所有 预装证书。我可以使用 在 frameworks/中定义的 Keystore 类 base/keystore/java/android/security.

  2. data/misc/keystore:另一种安装证书的方式(例如,通过 certinstaller app) 安装第三方证书并制作 它在这个目录中的条目。

但我不知道如何读取序列号等证书信息, 此文件中的 IssuerDN 等。

最佳答案

我使用下面的代码 fragment 来列出

public void PrintInstalledCertificates() {
    try {
        KeyStore ks = KeyStore.getInstance("AndroidCAStore");
    
        if (ks != null) {
            ks.load(null, null);
            Enumeration<String> aliases = ks.aliases();
        
            while (aliases.hasMoreElements()) {

                String alias = (String) aliases.nextElement();

                java.security.cert.X509Certificate cert = (java.security.cert.X509Certificate) ks.getCertificate(alias);
                //To print System Certs only
                if(cert.getIssuerDN().getName().contains("system")){
                    System.out.println(cert.getIssuerDN().getName());
                }

                //To print User Certs only 
                if(cert.getIssuerDN().getName().contains("user")){
                    System.out.println(cert.getIssuerDN().getName());
                }

                //To print all certs
                System.out.println(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();
    }               
}

关于android - 列出所有在 android 上安装的证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4458046/

相关文章:

ssl - 如何撤销客户端证书

android - 将标题设置为操作栏时出现空指针异常

java - Android 中的发送和接收套接字实现

c# - Windows Identity Foundation 中的 TrustedIssuers

php - 在 php 中使用 curl,在单独的文件中使用客户端证书和私钥

security - ActiveMQ 和客户端通过证书身份验证身份

c# - 在 C# 中使用 p12 证书从 SFTP 下载文件

android - android 的 google 登录, token 过期,使用后端服务器进行身份验证

java - 如何将 HTML/Javascript 代码转换为可用于 Eclipse 中的 Android 应用程序

android - 可以使用来自 Camera Remote API 的 BULB 模式