可以通过以下方法在 Java 中获取 Root 证书:使用 KeyStore 获取 Java keystore,并提取 Root 证书。使用 TrustManager 调用 getAcceptedIssuers 方法获取受信任的 Root 证书。使用 Certificates.java 工具类过滤出已安装的 Root 证书。
如何获取 Java 中的 Root 证书
在 Java 中,可以通过以下方法获取 Root 证书:
1. 使用 KeyStore
KeyStore 获取包含所有已安装 Root 证书的 Java keystore。getCertificateChain 方法获取 X509Certificate 数组。代码示例:
KeyStore keyStore = KeyStore.getInstance("JKS");
keyStore.load(null, null);
Certificate[] certificates = keyStore.getCertificateChain("root");
X509Certificate rootCertificate = (X509Certificate) certificates[0];2. 使用 TrustManager
X509TrustManager 的一个实例。getAcceptedIssuers 方法获取 X509Certificate 数组。代码示例:
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); trustManagerFactory.init((KeyStore) null); X509TrustManager trustManager = trustManagerFactory.getTrustManagers()[0]; X509Certificate[] rootCertificates = trustManager.getAcceptedIssuers();
3. 使用 Certificates.java
Certificates.java 工具类。getCertificates 方法获取所有已安装的证书。代码示例:
Listcertificates = Certificates.java.getCertificates(); List rootCertificates = certificates.stream() .filter(certificate -> certificate instanceof X509Certificate && certificate.getBasicConstraints() != -1) .map(certificate -> (X509Certificate) certificate) .collect(Collectors.toList());