如何使用现有的 .cer、.p12 或 .pfx 证书签署应用程序?
Posted
技术标签:
【中文标题】如何使用现有的 .cer、.p12 或 .pfx 证书签署应用程序?【英文标题】:How to sign application with existing .cer, .p12 or .pfx certificate? 【发布时间】:2011-12-06 13:14:29 【问题描述】:我想使用与桌面应用相同的证书签署 android 应用。我有 3 个文件 - .cer、.p12 和 .pfx。是否可以使用其中任何一个来签署 Android 应用程序?
更新:我已成功将 .cer 密钥(似乎是 X.509 格式的证书)导入新创建的密钥库,但我无法使用它进行签名。这是jarsigner
给我的错误消息:
找不到证书链:[别名]。密钥必须引用一个有效的 包含私钥和相应公钥的 KeyStore 密钥条目 密钥证书链。
也许,在导入证书以使其有效后,我还必须对密钥库执行其他操作?生成公钥什么的?
【问题讨论】:
您的证书有效期是否为 10 年或更长时间? Android 市场需要一个巨大的长期。另见***.com/questions/3985419/… @rekire:感谢您的提醒!顺便说一句,自动生成的证书(我在按照网络上的教程后得到的)只有 6 个月的有效期。很奇怪。 Signing apk with .p12的可能重复 【参考方案1】:您是否使用-validity 创建了密钥库,然后会出现此问题,请删除-validity。它会起作用的。
keytool -importkeystore -srckeystore certificate/xxxxx.pfx -srcstoretype pkcs12 -destkeystore certificate/xxxxx.keystore -deststoretype JKS **-validity 36500**
改成
keytool -importkeystore -srckeystore certificate/xxxxx.pfx -srcstoretype pkcs12 -destkeystore certificate/xxxxx.keystore -deststoretype JKS
我遇到了这个问题,因为它试图将有效性添加到具有有效到期日期的 pfx 中。
【讨论】:
以上是关于如何使用现有的 .cer、.p12 或 .pfx 证书签署应用程序?的主要内容,如果未能解决你的问题,请参考以下文章