Ssl 将两个证书链接到同一主题

Ssl 将两个证书链接到同一主题,ssl,openssl,x509certificate,corda,keytool,Ssl,Openssl,X509certificate,Corda,Keytool,我正在尝试生成特定的证书链,以用作Corda节点的证书。 certs结构如下所示 cert_0 -> Subject: Node DN (Legal identity cert) cert_1 -> Subject: Node DN (Node CA cert) cert_2 -> Subject: Doorman CA cert_3 -> Subject: Network Root CA 我已生成所有证书,然后尝试分两步链接它们: openssl pkcs12 -e

我正在尝试生成特定的证书链,以用作Corda节点的证书。 certs结构如下所示

cert_0 -> Subject: Node DN  (Legal identity cert)
cert_1 -> Subject: Node DN (Node CA cert)
cert_2 -> Subject: Doorman CA
cert_3 -> Subject: Network Root CA
我已生成所有证书,然后尝试分两步链接它们:

openssl pkcs12 -export -chain -CAfile nodedoormanrootca.pem -in identity-cert.pem  -inkey identity-key.pem  -out identity.p12 -name identity-private-key  -passout pass:changeit
第1步工作正常,因此我得到由所有4个证书组成的证书包

下一步是使用keytool将其导出到Java密钥库

keytool -v -importkeystore -providerpath  bcprov-jdk15on-1.66.jar -provider org.bouncycastle.jce.provider.BouncyCastleProvider -srckeystore identity.p12 -srcstoretype PKCS12 -destkeystore nodekeystore.jks -deststorepass changeit -srcstorepass changeit -alias "identity-private-key"
(我使用Bouncy Castle提供程序,因为cert_0使用ed25519密钥)

问题是导入keytool后,我只有一个条目标识私钥,而没有链的其余部分

原因是cert_0和cert_1具有相同的主题,keytool认为cert_0是自签名的,因此在密钥库中仅添加第一个cert后停止

那么,有没有关于如何创建JKS格式的证书链的想法,其中两个证书具有相同的主题(当然具有不同的公钥)


我们想到的是尝试创建一些基于Corda源代码的小型kotlin程序,但有更简单的解决方案吗?可能是对keytool或smth的一些攻击,这其中有一些重要的方面需要注意,因为目前某些corda网络不支持滚动您自己的证书

如果您在自己的机器上使用引导网络执行此操作,我建议您不要这样做,因为您只需使用引导程序的corda developer证书即可

如果您这样做是为了生产或使用自己的PKI,那么您应该可以使用CENM(此处链接:)

没有演示创建这些证书的示例项目。但是,如果您下载Corda源代码并查看X509Utilities.kt()和CertificatesUtils.kt(),您将发现创建证书的有效工具包

祝你好运