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

时间:2015-05-30 14:41:16

标签: java ssl keytool

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

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

生成自签名证书没有意义,因为您希望受信任的CA签署您的证书请求。如何生成非自签名密钥库?

2 个答案:

答案 0 :(得分:4)

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

您需要使用您在使用-genkey时输入的信息从该密钥对中提取证书请求(此信息最终出现在自签名证书中)。重复使用您与-genkey

一起使用的别名
keytool -certreq -alias somename -file somename.csr -keystore mykeystore.jks

将CSR发送到您的CA,并在获得证书后,根据相同的别名重新导入它。这将使用keytool -importcert覆盖最初生成的自签名证书。请注意,如果有中间证书,您可能需要立即导入整个链,如this answer末所述。

答案 1 :(得分:1)

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

但是,如果您需要获得认可的CA签名,则需要从CA获取证书。您无法使用keytool创建由已识别的CA签名的证书。搜索您选择的搜索引擎“SSL证书”。大多数证书都是付费的,比如GeoTrust。其他人,如StartSSL或即将推出的LetsEncrypt,可以免费或免费选择。