使用keytool合并JKS文件时提示密码错误的潜在原因咨询
目标密钥库的条目密码与存储密码不一致
keytool -list仅验证密钥库的存储密码,但-importkeystore操作如果目标密钥库已存在,会尝试解锁其中的密钥条目。如果目标库内的私钥条目设置了独立于存储密码的密码,即使存储密码正确,也会触发密码错误提示。源密钥库的个别条目密码与存储密码不一致
同理,源密钥库的存储密码能通过-list验证,但如果其中某个私钥条目使用了和存储密码不同的独立密码,-importkeystore默认会用存储密码尝试解锁该条目,导致操作失败。密钥库类型不匹配
若目标文件somefile_dst.keystore实际不是JKS类型(比如是PKCS12格式,Java 9+默认密钥库类型为PKCS12),而你未通过-srcstoretype JKS和-deststoretype JKS指定类型,工具会用默认类型解析,可能导致密码验证逻辑出错,误报密码错误。命令行参数存在隐形字符
复制粘贴密码时可能带入空格、换行或不可见Unicode字符,-list命令可能因终端处理忽略这些字符,但-importkeystore会严格解析,导致实际输入的密码与密钥库密码不匹配。建议手动输入密码,或通过环境变量传递密码(如-srcstorepass:env MY_PASS)规避此问题。密钥库文件损坏或权限不足
虽然-list能读取密钥库基本信息,但文件可能存在部分损坏,-importkeystore需要完整的读写操作时会出错;或者当前用户对目标密钥库文件没有写入权限,工具也可能误报密码错误。
内容的提问来源于stack exchange,提问作者Kai-Eiji

