如何使用现有的 .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 证书签署应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Linux 中转换 SSL 证书

ITfoxtec SAML 2.0 Azure 广告证书格式问题 .Cer 到 .PFX

如何使用 .pfx 和 .cer 文件创建自签名证书?

.pfx和.Cer 证书

pfx是啥文件

从 pfx 证书中提取文件 .cer 和文件 .key