Openssl 生成X.509证书列表并将其存储在.bin文件中
我正在尝试为google marketplace应用程序创建证书。我正在尝试实现一个接口 我的源代码是Openssl 生成X.509证书列表并将其存储在.bin文件中,openssl,certificate,google-apps,google-oauth,google-sso,Openssl,Certificate,Google Apps,Google Oauth,Google Sso,我正在尝试为google marketplace应用程序创建证书。我正在尝试实现一个接口 我的源代码是 public class AppEngineTrustsRootProvider implements TrustRootsProvider { private static final String CERT_FILE = "/cacerts.bin"; private final Collection<X509Certificate> certs; @Supp
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;
}
}
公共类AppEngineTrustsRootProvider实现TrustRootsProvider{
私有静态最终字符串CERT_FILE=“/cacerts.bin”;
私人最终收款证书;
@抑制警告(“未选中”)
公共AppengineTrustRootProvider(){
试一试{
ObjectInputStream输入=
新的ObjectInputStream(AppEngineTrustsRootProvider.class.getResourceAsStream(CERT_文件));
.readObject()中的证书=(集合);
}捕获(IOE异常){
抛出新的运行时异常(e);
}catch(classnotfounde异常){
抛出新的运行时异常(e);
}
}
公共集合getTrustRoots(){
退还证书;
}
}
我读过这篇文章,其中使用openssl或keytool,我们可以在.cert文件或.der文件中生成证书,但如何在.bin文件中获取证书列表。这是一个示例代码片段,我无法理解如何获取.bin文件中的证书列表。请找人帮忙如果我正确理解了您的问题,您正在尝试将一组证书合并到一个文件中。这通常是通过密钥库文件完成的,密钥库文件可以有多种格式。两种流行的格式是JKS和PKCS12。您可以使用Java
keytool
命令或openssl
创建密钥库
然后,通过编程,可以将密钥库文件加载到Java对象中。从那里,您可以使用alias()
方法检索密钥库中的所有别名。然后,您可以使用isCertificateEntry(alias)
方法检查每一个证书,如果为true,则将getCertificate(alias)
生成的证书添加到一个集合中,您将在方法末尾返回该集合。在上面的KeyStore链接中有一些从文件加载KeyStore的示例代码
请注意,JRE安装中的cacerts
文件实际上是一个JKS密钥库