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

时间:2017-09-26 11:38:03

标签: java ssl certificate keystore java-security

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

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

  1. 我创建了一个密钥库
  2. 在其中生成公钥和私钥对。
  3. 生成CSR。
  4. 提交CSR并获取证书信任链
  5. 我导入证书
  6. 我必须导入信任链
  7. Set 6是我的问题。我有两个选择:

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

    或者将CA导入Keystore。如下

    import  CAs to Keystore

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

1 个答案:

答案 0 :(得分:3)

key pair基本上表示为java密钥库中的private-keycertificate 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文件。它是truststore文件,其中包含java希望信任的所有CA和SubCA的证书。当您拥有希望java信任的新组织证书时,您可以在cacert文件中添加该证书。在这种情况下,您可以选择Import Trusted Certificate选项。

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