我正在尝试为Google marketplace app创建证书。我正在尝试实现一个接口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文件中的证书列表。这是一个示例代码片段,我无法弄清楚如何获取.bin文件中的证书列表。请一些帮助
答案 0 :(得分:0)
如果我正确理解了您的问题,那么您正试图将一组证书合并到一个文件中。这通常通过KeyStore文件完成,该文件可以是多种格式。两种流行的格式是JKS和PKCS12。您可以使用Java keytool
命令或openssl
来创建密钥库。
然后以编程方式,您可以将密钥库文件加载到Java KeyStore对象中。从那里,您可以使用aliases()
方法检索KeyStore中的所有别名。然后,您可以使用isCertificateEntry(alias)
方法浏览每个方法,如果为true,则将结果证书从getCertificate(alias)
添加到Collection中,您将在方法结束时返回。有一些示例代码用于从上面KeyStore链接的文件加载KeyStore。
请注意,JRE安装中存在的cacerts
文件实际上是一个JKS密钥库。