将信任链导入密钥对或将其导入密钥库或两者

Import Trust Chain to the keypair or import it to keystore or both

我们正在尝试为我们的 tomcat 服务器获取有效的 SSL,并且我们正在使用 KeyTool 来管理密钥库

...但我认为任何具有安全背景的人都可以提供帮助!!


  1. 我创建了一个密钥库
  2. 在里面生成public和私钥对
  3. 生成 CSR。
  4. 提交 CSR 并获得证书信任链
  5. 我导入了证书
  6. 我必须导入信任链

第 6 组是我的问题。我有两个选择:

将证书附加到密钥对(名为 tomcat) 以下:

或将 CA 导入 Keystore。如下

我应该两者都做吗?!如果第一个选项(将证书附加到密钥对)就足够了,那么为什么有人需要将证书添加到密钥库?

A key pair 在 java 密钥库中基本上表示为 private-keycertificate chain。并且证书包含 public 密钥。当您使用 keytool 命令生成密钥对时,它会要求您提供一些详细信息,这些信息需要放在它将生成的自签名证书上并与该私钥关联。所以在这种情况下,您的证书链包含 1 个证书。

当您生成 CSR,并在单个文件(例如 p7b 中收到您的签名证书和其他信任链证书(即:CA 和 SubCA 的证书)时,您将添加它们到您当前的密钥对,即:您将证书链与其相应的私钥相关联。因此,在这种情况下,您可以在密钥库资源管理器上选择 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)

要使用密钥工具查看密钥库的外观,当您 -list 密钥库内容时,您将看到 a PrivateKeyEntry with Certificate chain length: x

所以回答你的选项1:当你想编辑这个证书链时,比如添加证书或删除证书,你可以使用Edit Certificate Chain选项keystore-explorer 提供。

回答你的选项2:就像密钥对条目存在于密钥库中一样,证书也可以单独存在。它被称为Certificate Entry。当密钥库仅包含证书时,它被称为 truststore。您可能听说过 java 安装文件夹包含的 cacerts 文件。它是信任库文件,其中包含 java 想要信任的所有 CA 和 SubCA 的证书。当您拥有希望 java 信任的新组织证书时,您可以将该证书添加到 cacert 文件中。在这种情况下,您会选择 Import Trusted Certificate 选项。

如果您要导入 CA 的回复,从技术上讲,您应该将其与其对应的私钥相关联。所以你应该做 Import CA's Reply.