可以通过以下方法在 Java 中获取 Root 证书:使用 KeyStore 获取 Java keystore,并提取 Root 证书。使用 TrustManager 调用 getAcceptedIssuers 方法获取受信任的 Root 证书。使用 Certificates.java 工具类过滤出已安装的 Root 证书。

如何获取 Java 中的 Root 证书
在 Java 中,可以通过以下方法获取 Root 证书:
1. 使用 KeyStore
- 使用
KeyStore获取包含所有已安装 Root 证书的 Java keystore。 - 使用
getCertificateChain方法获取X509Certificate数组。 - 其中第一个证书是 Root 证书。
代码示例:
立即学习“Java免费学习笔记(深入)”;
KeyStore keyStore = KeyStore.getInstance("JKS");
keyStore.load(null, null);
Certificate[] certificates = keyStore.getCertificateChain("root");
X509Certificate rootCertificate = (X509Certificate) certificates[0];2. 使用 TrustManager
- 获得
X509TrustManager的一个实例。 - 调用
getAcceptedIssuers方法获取X509Certificate数组。 - 这些证书是受信任的 Root 证书。
代码示例:
立即学习“Java免费学习笔记(深入)”;
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方法获取所有已安装的证书。 - 过滤出 Root 证书。
代码示例:
立即学习“Java免费学习笔记(深入)”;
Listcertificates = Certificates.java.getCertificates(); List rootCertificates = certificates.stream() .filter(certificate -> certificate instanceof X509Certificate && certificate.getBasicConstraints() != -1) .map(certificate -> (X509Certificate) certificate) .collect(Collectors.toList());











