如何将证书链添加到密钥库?

我有证书链的文件 – certificate.cer:

subject=/C... issuer=/C=US/O=VeriSign, Inc... -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- subject=/C=US/O=VeriSign, Inc... issuer=/C=US/O=VeriSign, Inc... -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- subject=/C=US/O=VeriSign, Inc... issuer=/C=US/O=VeriSign, Inc... -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- 

我需要将这个证书链添加到密钥库。
我做的事:

 openssl x509 -outform der -in certificate.cer -out cert.der keytool -v -importcert -alias mykey -file cert.der -keypass  -keystore keystore -storepass  -alias  

结果我在密钥库中只有1个证书。
但应该有3。
可能有什么不对?

解:
CA向我发送了PKCS#7格式的证书。
我将它们存储在certificate.p7b文件中,然后通过以下命令成功将它们添加到密钥库:

 keytool -import -trustcacerts -file certificate.p7b -keystore keystore -storepass  -alias "myalias" 

从keytool man – 它导入证书链,如果输入是以PKCS#7格式给出的,否则只导入单个证书。 您应该能够通过openssl crl2pkcs7命令将证书转换为使用openssl的PKCS#7格式。

我把所有的豌豆拼凑在一起解决了这个问题:

 cat cert.pem chain.pem fullchain.pem >all.pem openssl pkcs12 -export -in all.pem -inkey privkey.pem -out cert_and_key.p12 -name tomcat -CAfile chain.pem -caname root -password MYPASSWORD keytool -importkeystore -deststorepass MYPASSWORD -destkeypass MYPASSWORD -destkeystore MyDSKeyStore.jks -srckeystore cert_and_key.p12 -srcstoretype PKCS12 -srcstorepass MYPASSWORD -alias tomcat keytool -import -trustcacerts -alias root -file chain.pem -keystore MyDSKeyStore.jks -storepass MYPASSWORD 

(keytool不知道如何处理PKCS7格式的密钥)

我从letsencrypt得到了所有的pems