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

Ali*_*ahi 3 java ssl certificate keystore java-security

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

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


  1. 我创建一个密钥存储
  2. 在其中生成公钥和私钥对。
  3. 生成 CSR。
  4. 提交CSR并获得证书信任链
  5. 我导入证书
  6. 我必须导入Trust Chain

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

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

或者将 CA 导入到密钥库。如下

将 CA 导入密钥库

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

alw*_*arn 5

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

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

当您这样做时,密钥库资源管理器将像这样构造证书链:

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)
Run Code Online (Sandbox Code Playgroud)

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

因此,回答您的选项 1:当您想要编辑此证书链时,例如添加证书或删除证书,您可以使用Edit Certificate Chainkeystore-explorer 提供的选项。

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

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