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











