Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将信任链导入密钥对,或将其导入密钥库,或同时导入两者_Java_Ssl_Certificate_Keystore_Java Security - Fatal编程技术网

Java 将信任链导入密钥对,或将其导入密钥库,或同时导入两者

Java 将信任链导入密钥对,或将其导入密钥库,或同时导入两者,java,ssl,certificate,keystore,java-security,Java,Ssl,Certificate,Keystore,Java Security,我们正在尝试为我们的tomcat服务器获取一个有效的SSL,并且我们正在使用KeyTool来管理密钥库 …但我认为任何有安全背景的人都能帮上忙 我创建了一个密钥存储 在其中生成公钥和私钥对 生成CSR 提交CSR并获得证书和信任链 我导入证书 我必须导入信任链 第六盘是我的问题。我有两个选择: 将证书附加到密钥对(名为tomcat) 下: 或者将CAs导入密钥库。如下 我应该两者都做吗?!如果第一个选项(将证书附加到密钥对)足够了,那么为什么有些人需要将证书添加到密钥存储?在java密钥库

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

…但我认为任何有安全背景的人都能帮上忙


  • 我创建了一个密钥存储
  • 在其中生成公钥和私钥对
  • 生成CSR
  • 提交CSR并获得证书信任链
  • 我导入证书
  • 我必须导入信任链
  • 第六盘是我的问题。我有两个选择:

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

    或者将CAs导入密钥库。如下


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

    在java密钥库中,
    密钥对
    基本上表示为
    私钥
    证书链
    。证书包含公钥。当您使用keytool命令生成密钥对时,它会要求您提供一些需要的详细信息,以便在它将生成并与该私钥关联的自签名证书上添加这些信息。因此,在本例中,您的证书链包含1个证书

    当您生成CSR,并在单个文件(如
    p7b
    )中收到您的签名证书和其他信任链证书(即:CA和SubCA的证书)时,您将把它们添加到当前密钥对中,即:将证书链与其对应的私钥相关联。因此,在本例中,您将选择密钥库资源管理器上的
    导入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)
    
    要使用keytool查看它在密钥库上的外观,当您
    -list
    密钥库内容时,您将看到
    证书链长度为x的PrivateKeyEntry

    因此,要回答您的选项1:当您想要编辑此证书链(如添加证书或删除证书)时,可以使用密钥库资源管理器提供的
    编辑证书链
    选项

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

    如果您正在导入CA的回复,那么技术上应该将其与相应的私钥相关联。因此,您应该执行导入CA回复的