keytool :证书导入给出错误消息 - 密钥库被篡改,或密码不正确
Posted
技术标签:
【中文标题】keytool :证书导入给出错误消息 - 密钥库被篡改,或密码不正确【英文标题】:keytool : Certificate import gives error message - Keystore was tampered with, or password was incorrect 【发布时间】:2013-06-02 15:50:18 【问题描述】:我的目标是生成证书,将其导出到文件中并导入 JDK 密钥库。
在第一步中,我使用以下命令生成了一个自签名证书,为密钥库和密钥提供密码作为“密码”:
keytool -genkeypair -keystore .keystore -alias uasera -keyalg RSA
在第二步中,我使用类似的密码和以下命令导出了证书:
keytool -exportcert -keystore .keystore -alias usera -file usera.crt
现在!
我正在尝试使用类似的密码和以下命令在 JDK 的 cacerts 中导入此证书,但出现异常。
keytool -importcert -file usera.crt -keypass password -keystore "C:\Program Files\Java\jdk1.7.0_13\jre\lib\security\cacerts"
错误
K:\java\certificates>keytool -importcert -file usera.crt -keypass password -keystore "C:\Program Files\Java\jdk1.7.0_13\jre\lib\security\cacerts" 输入密钥库密码: keytool error: java.io.IOException: Keystore was tampered, or password is wrong
【问题讨论】:
-keypass
指定密钥库中单个密钥别名的密码。如果要指定密钥库文件本身的密码,则要使用 -storepass
。
【参考方案1】:
我已经解决了这个问题。我使用我的密码“密码”来更新 JDK 中的 cacerts 密钥库,而 cacerts 密钥库的默认密码是“changeit”
【讨论】:
谢谢,当我偶然发现这个问题时,我正要发布我的相关问题。对我来说,相反的情况正在发生,当我应该使用“密码”时,我使用了“changeit” 补充说明,如果您尝试使用cacerts
密钥库,则应使用-cacerts
参数而不是-keystore <path>
来处理它。
我从来不知道默认密码是changeit
【参考方案2】:
如果您能够从 PC 构建应用,但您不记得密码,您可以执行以下操作来找回密码:
方法一:
在您的 build.gradle 中,添加 println MYAPP_RELEASE_KEY_PASSWORD
如下:
signingConfigs
release
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE'))
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
println MYAPP_RELEASE_KEY_PASSWORD
之后,运行cd android && ./gradlew assembleRelease
方法二:
运行keytool -list -v -keystore your <.keystore file path
> 例如keytool -list -v -keystore ./app/my-app-key.keystore.
它会要求您输入密钥库密码:只需在此处按 enter 键。并且您将能够找到映射到别名的名称:
然后,运行 grep -rn "<your alias name>"
。在您的终端中,您将能够看到您的 signing.json 文件,如下所示:
./app/build/intermediates/signing_config/release/out/signing-config.json
该文件将包含您的 json 格式密码,密钥为 "mKeyPassword":" < your password > "
【讨论】:
以上是关于keytool :证书导入给出错误消息 - 密钥库被篡改,或密码不正确的主要内容,如果未能解决你的问题,请参考以下文章
Java keyTool - 将主要/次要中间证书附加到密钥库[关闭]
如何使用 keytool 在 PKCS12 密钥库中创建证书?