Keytool 不要求设置密钥密码 (keypass)

Keytool isn't asking to set key password (keypass)

我尝试在我的 C:\Program Files\Java\jdk15.x.x_x\bin.:

中使用以下命令创建密钥工具
keytool -genkey -alias demospring -keyalg RSA -keystore demospring.jks -keysize 2048

系统要求我创建密码,而不是别名密码。我错过了什么吗? 我对这个概念还是很陌生。 提前感谢您的帮助!

自 Java 版本 9 起,它已将默认 JKS 密钥库转换为 PKCS12 (read here)。 JKS 是 java 的专有格式,而 PKCS12 更像是一种标准格式(其他各种应用程序都可以理解)。

这两种格式在keypass方面的区别在于,在JKS中你可以设置不同的keystore password(保护keystore的密码)和key password(第二个保护keystore的密码)密钥,可能与密钥库相同),但对于 pkcs12,它们 具有相同的

由于storepasskeypass相同,keytool不会提示keypass,只会使用storepass。创建密钥库后,如果您使用 -list 命令查看密钥库的详细信息,它将显示其格式。


如果您为 PKCS12 密钥库传入 keypass 参数,keytool 将向您显示此警告:

Warning: Different store and key passwords not supported for PKCS12 KeyStores. Ignoring user-specified -keypass value.

您可以使用 -storetype 参数更改密钥库类型格式,但是如果您将存储类型用作 JKS,keytool 将显示此警告:

Warning: The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore demospring.jks -destkeystore demospring.jks -deststoretype pkcs12".