Openssl 我可以在没有私钥的情况下将多个证书合并为一个证书吗?

Openssl 我可以在没有私钥的情况下将多个证书合并为一个证书吗?,openssl,chain,Openssl,Chain,我需要在许多设备中有最新的证书信任存储,所以我希望能够将它们合并到证书上,然后我可以推送一个文件。我只想捆绑许多CA的公钥,但我不想添加私有文件,因为我想要一个可以推送到所有设备上的证书。我认为这个特性被称为链,但是如果没有私有文件,openssl将不会接受命令。这能做到吗?我尝试了几种不同的方法,我在这里看了很多线程,但我不知道我在做什么 编辑 我尝试使用的命令是: openssl -export -pkcs12 -out output.pem -cafile intermediate.pem

我需要在许多设备中有最新的证书信任存储,所以我希望能够将它们合并到证书上,然后我可以推送一个文件。我只想捆绑许多CA的公钥,但我不想添加私有文件,因为我想要一个可以推送到所有设备上的证书。我认为这个特性被称为链,但是如果没有私有文件,openssl将不会接受命令。这能做到吗?我尝试了几种不同的方法,我在这里看了很多线程,但我不知道我在做什么

编辑 我尝试使用的命令是:

openssl -export -pkcs12 -out output.pem -cafile intermediate.pem
编辑 我尝试了“openssl crl2pkcs7-certfile bundle.pem-out p7.pem”,但它产生了一个错误:

openssl crl2pkcs7 -certfile bundle.pem -out p7.pem
unable to load CRL
9460:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\pem_lib.c:701:Expecting: X509 CRL
我还尝试:

openssl pkcs7 -in bundle.pem -out p7.pem
unable to load PKCS7 object
3676:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:.\crypto\asn1\tasn_dec.c:1201:
3676:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:.\crypto\asn1\tasn_dec.c:765:
3676:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:.\crypto\asn1\tasn_dec.c:697:Field=type, Type=PKCS7
3676:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:.\crypto\pem\pem_oth.c:83:

如果您已经拥有证书,您可以简单地将它们连接起来:

cat cert1.pem cert2.pem > bundle.pem

然而,这实际上取决于每个信任存储所期望的格式。例如,描述了几种可用于分发证书、密钥等的标准。其中一种是PKCS#7,它通常用于捆绑一组没有私钥的证书。您可能需要了解每个设备如何实现信任存储,因为它们可能都需要不同的格式。

我尝试进行连接,但未能加载所有设备。我试着只导入一些,它只接受由下一级签署的证书。我的意思是,我们有许多CA由两个根之一签名。所以如果10,11,12和13都有1的签名。20、21、22和23由2签字。然后试着放进10,11,12,然后是1。只需要10加1。这些不是我的数字,但我认为这会使讨论更容易。我希望所有数字都在同一个文件中。您提到的
openssl将不接受该命令。你能列出你试过的命令吗?这会让您了解您想要实现的目标。openssl会创建其中一个pkcs7容器吗?这样做的命令是什么?你能提供一个例子吗?对不起,应该是
openssl crl2pkcs7-nocrl-certfile bundle.pem-out p7.pem