将密钥库的类型从 PKCS12 更改为 JKS 后,我在获取相同的指纹时遇到问题。
为了进行更改,我创建了一个新的 JKS 密钥库,删除了其中的密钥,并从 .p12 文件中导入了我需要的密钥。用它验证密钥时keytool -keystore keystore.jks -list
会输出指纹:
(SHA1): 21: ... :39
这是.p12文件的指纹,指纹谷歌说我以前的apk是。当我使用此证书签署我的 apk 并尝试将其上传到 playstore 时,它说证书具有指纹:
SHA1: C7: ... :AF
当我使用 KeyStore Explorer 检查原始 .p12 文件和新 .jks 文件时,它们都SHA1: C7: ... :AF
列为指纹。
编辑1:
keytool -keystore disneyquiz.p12 -storetype PKCS12 -alias 1 -list
Enter keystore password:
1, Jun 4, 2014, PrivateKeyEntry,
Certificate fingerprint (SHA1): 21: ... :39
keytool -keystore quizstore.jks -list
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
key0, Dec 3, 2014, PrivateKeyEntry,
Certificate fingerprint (SHA1): 21: ... :39
新的APK
keytool -printcert -file CERT.RSA
Owner: CN=CBP Development, OU=CBP Development, O=CBP Development, C=US
Issuer: CN=CBP Development, OU=CBP Development, O=CBP Development, C=US
Serial number: 36663939343135303a31343636393337363665663a2d38303030
Valid from: Tue Jun 03 19:29:37 EDT 2014 until: Sat Jun 04 19:29:37 EDT 2039
Certificate fingerprints:
MD5: F6: ... :72
SHA1: C7: ... :AF
SHA256: 7C:D6: ... :67:B9
Signature algorithm name: SHA1withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
codeSigning
]
原始APK
keytool -printcert -file CERT.RSA
Owner: CN=CBP Development, OU=CBP Development, O=CBP Development, C=US
Issuer: CN=CBP Development, OU=CBP Development, O=CBP Development, C=US
Serial number: 36663939343135303a31343636393337363665663a2d38303030
Valid from: Tue Jun 03 19:29:37 EDT 2014 until: Sat Jun 04 19:29:37 EDT 2039
Certificate fingerprints:
MD5: AD: ... :CA
SHA1: 21: ... :39
SHA256: D2:7D: ... :8E:47
Signature algorithm name: SHA1withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
codeSigning
]
编辑2:
原始 .p12 文件是使用 Adobe Air Certificate generator 生成的,原始 apk 是使用 Adobe Flash Professional CC 编译的。在测试证书并尝试以各种方式签署 APK 之后,我认为唯一的可能性是 Flash Professional 签名过程在签署 apk 时会以某种方式更改报告的指纹。flash 中创建的 apk 的 META-INF 中的 CERT.RSA 与新 apk 的 CERT.RSA 匹配。希望有人对如何签署我的新 apk 提出建议,以便我可以更新我的应用程序。