使用keytool在密钥库中“密钥密码”的意义是什么
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用keytool在密钥库中“密钥密码”的意义是什么相关的知识,希望对你有一定的参考价值。
我使用以下命令为我的Web应用程序生成jks。
keytool -genkey -keyalg RSA -alias my-app -validity 10800 -keysize 2048 -sigalg SHA1withRSA -keystore myapp.jks
此命令提示如下问题:
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: GS
What is the name of your organizational unit?
[Unknown]: XX
What is the name of your organization?
[Unknown]: YY
What is the name of your City or Locality?
[Unknown]: ZZ
What is the name of your State or Province?
[Unknown]: AA
What is the two-letter country code for this unit?
[Unknown]: BB
Is CN=GS, OU=XX, O=YY, L=ZZ, ST=AA, C=BB correct?
[no]: yes
Enter key password for <my-app> //Why this password is required???
(RETURN if same as keystore password):
只有当密钥库密码[首次提示]和密钥密码时,Tomcat才能读取此密钥库。当我使用其他密码代替“密钥密码”时,由于密钥库文件,tomcat无法启动。 我的问题是密钥密码的意义是什么。
P.S:我看过这个link。他们在这里说:
Press RETURN when prompted for the key password (this action makes the key password the same as the KeyStore password).
如果两个密码必须相同,那么任何想法询问它两次的意义是什么?
正如JavaDoc所述
提示您输入的keypass值指定要生成的私钥的密码。您始终需要此密码才能访问包含该密钥的密钥库条目。该条目不必拥有自己的密码。当系统提示您输入密钥密码时,您可以选择让它与密钥库密码相同。
密钥库可以包含多个密钥,每个密钥只能使用密码访问。因此,如果您希望将密钥密码与您正在创建的密钥库保持一致,则keytool只是为您提供一个选项。
您可以在一个密钥库中拥有许多密钥,每个密钥都有自己的密码(或者如果您选择密钥库本身,则与密钥库本身相同)。这是你的决定,你关心密钥的安全性。
正如@Maas已经回答的那样,keyPassword需要访问存储在KeyStore中的密钥条目。
它的发生方式是首先使用KeyStore密码来访问/解锁KeyStore,然后使用keyPassword来解密KeyStore内部的密钥条目。
通常,ssl的各种实现/使用考虑对KeyStorePassword和keyPassword使用相同的密码
这也是tomcat的情况。如果您看到文档tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html,他们已经明确声明“您的私钥密码和密钥库密码应该是相同的。如果它们不同,您将得到一个错误,就像java.io.IOException:无法恢复密钥,如Bugzilla issue 38217,其中包含对此问题的进一步参考“
甚至JSSE实现也希望KeyStorePassword和KeyPassword相同。
以上是关于使用keytool在密钥库中“密钥密码”的意义是什么的主要内容,如果未能解决你的问题,请参考以下文章