【问题标题】:generating list of X.509 certificates and storing it in .bin file生成 X.509 证书列表并将其存储在 .bin 文件中
【发布时间】:2013-09-02 14:11:53
【问题描述】:

我正在尝试为谷歌市场应用程序创建证书。我正在尝试实现一个接口http://code.google.com/p/step2/source/browse/code/java/trunk/common/src/main/java/com/google/step2/xmlsimplesign/TrustRootsProvider.java?r=383

我的源代码是

public class AppEngineTrustsRootProvider implements TrustRootsProvider {

  private static final String CERT_FILE = "/cacerts.bin";

  private final Collection<X509Certificate> certs;

  @SuppressWarnings("unchecked")
  public AppEngineTrustsRootProvider() {

    try {
      ObjectInputStream in =
          new ObjectInputStream(AppEngineTrustsRootProvider.class.getResourceAsStream(CERT_FILE));
      certs = (Collection<X509Certificate>) in.readObject();
    } catch (IOException e) {
      throw new RuntimeException(e);
    } catch (ClassNotFoundException e) {
      throw new RuntimeException(e);
    }
  }

  public Collection<X509Certificate> getTrustRoots() {
    return certs;
  }
}

我阅读了这篇文章,其中使用 openssl 或 keytool 我们可以在 .cert 文件或 .der 文件中生成证书,但如何在 .bin 文件中获取证书列表。这是一个示例代码 sn-p 我无法弄清楚如何在 .bin 文件中获取证书列表。请有人帮忙

【问题讨论】:

    标签: openssl certificate google-apps google-oauth google-sso


    【解决方案1】:

    如果我正确理解您的问题,您正试图将一组证书放在一个文件中。这通常通过 KeyStore 文件完成,该文件可以有多种格式。两种流行的格式是 JKS 和 PKCS12。您可以使用 Java keytool 命令或 openssl 创建密钥库。

    然后以编程方式,您可以将密钥库文件加载到 Java KeyStore 对象中。从那里您可以使用aliases() 方法检索KeyStore 中的所有别名。然后您可以使用isCertificateEntry(alias) 方法遍历每一个,如果为真,则将getCertificate(alias) 生成的证书添加到一个集合中,您将在方法结束时返回该集合。在上面的 KeyStore 链接中,有一些用于从文件加载 KeyStore 的示例代码。

    请注意,JRE 安装中存在的 cacerts 文件实际上是 JKS 密钥库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 2018-12-04
      • 2019-04-12
      • 2011-01-07
      • 1970-01-01
      相关资源
      最近更新 更多