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

fro*_*gcd 0 java ssl keytool

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

keytool -genkey -keyalg RSA -keysize 1024 -keystore bob.keystore
Run Code Online (Sandbox Code Playgroud)

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

Bru*_*uno 5

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

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

keytool -certreq -alias somename -file somename.csr -keystore mykeystore.jks
Run Code Online (Sandbox Code Playgroud)

将 CSR 发送到您的 CA,当您取回证书时,使用相同的别名重新导入它。这将覆盖最初使用keytool -importcert. 请注意,如果有中间证书,您可能需要立即导入整个链,如本答案末尾所述。