key pair 在 java 密钥库中基本上表示为 private-key 和 certificate chain。并且证书包含公钥。当您使用 keytool 命令生成密钥对时,它会要求您提供一些详细信息,这些详细信息将放在它将生成并与该私钥关联的自签名证书上。所以在这种情况下,您的证书链包含 1 个证书。
当您生成 CSR,并在单个文件(如 p7b)中收到您的签名证书和其他信任链证书(即:CA 和 SubCA 的证书)时,您会将它们添加到您当前的密钥中对,即:您将证书链与其对应的私钥相关联。因此,在这种情况下,您将在 keystore-explorer 上选择 Import CA Reply 选项。
当你这样做时,keystore-explorer 会像这样构造证书链:
CA Certificate (self-signed)
|
|__ 2. Sub CA Certificate (signed by the above CA)
|
|__ 1. Sub-sub CA Certificate (if any) (signed by the above Sub CA)
|
|__ 0. End Entity Certificate (your certificate, signed by the above cert)
要使用 keytool 查看它在密钥库上的外观,当您 -list 密钥库内容时,您将看到 a PrivateKeyEntry with Certificate chain length: x。
所以回答您的选项 1:当您想要编辑此证书链时,例如添加证书或删除证书,您可以使用 keystore-explorer 提供的Edit Certificate Chain 选项。
回答您的选项 2:就像密钥对条目存在于密钥库中一样,证书也可以单独存在。它被称为Certificate Entry。当密钥库只包含证书时,它被称为truststore。您可能听说过 java 安装文件夹包含的 cacerts 文件。它是信任库文件,其中包含 java 想要信任的所有 CA 和 SubCA 证书。当您拥有希望 java 信任的新组织证书时,您可以将该证书添加到 cacert 文件中。在这种情况下,您将选择Import Trusted Certificate 选项。
如果您要导入 CA 的回复,从技术上讲,您应该将其与相应的私钥相关联。所以你应该做Import CA's Reply。