Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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 Keytool-如何生成非自签名证书?_Java_Ssl_Keytool - Fatal编程技术网

Java Keytool-如何生成非自签名证书?

Java Keytool-如何生成非自签名证书?,java,ssl,keytool,Java,Ssl,Keytool,keytool生成的密钥库包含使用以下命令的自签名证书,这令人困惑: keytool -genkey -keyalg RSA -keysize 1024 -keystore bob.keystore 生成自签名证书是没有意义的,因为您需要一个受信任的CA对您的证书请求进行签名。如何生成非自签名密钥库?自签名证书在许多环境中都很有价值,例如应用程序实例之间的通信。在这种情况下,支付CA签署证书的费用可能会非常昂贵 但是,如果您想要识别CA的签名,则需要从CA获取证书。您不能仅使用keytool创

keytool生成的密钥库包含使用以下命令的自签名证书,这令人困惑:

keytool -genkey -keyalg RSA -keysize 1024 -keystore bob.keystore

生成自签名证书是没有意义的,因为您需要一个受信任的CA对您的证书请求进行签名。如何生成非自签名密钥库?

自签名证书在许多环境中都很有价值,例如应用程序实例之间的通信。在这种情况下,支付CA签署证书的费用可能会非常昂贵


但是,如果您想要识别CA的签名,则需要从CA获取证书。您不能仅使用keytool创建由识别CA签名的证书。在您选择的搜索引擎中搜索“SSL证书”。大多数证书都是付费的,比如GeoTrust。其他的,如StartSSL或即将推出的LetsEncrypt,要么是免费的,要么有免费的选项。

keytool-genkey
是一个双重操作:它生成一个密钥对,并将其包装在自签名证书中。 拥有这个自签名证书实际上只是一种方便,部分链接到存储格式,如果您想将该密钥对用于CA颁发的证书,这只是暂时的

您需要使用在使用
-genkey
时输入的信息从该密钥对中提取证书请求(该信息最终位于自签名证书中)。重新使用与
-genkey
一起使用的别名:

keytool -certreq -alias somename -file somename.csr -keystore mykeystore.jks
将CSR发送到您的CA,当您获得证书时,根据相同的别名重新导入它。这将覆盖最初使用
keytool-importcert
生成的自签名证书。请注意,如果有中间证书,您可能需要立即导入整个链,如本章末尾所述