我需要签署安卓应用程序(.apk
)。
我有.pfx
文件。我通过Internet Explorer将其转换为.cer
文件,然后使用keytool将.cer
转换为.keystore
。然后我试着用jarsigner给.apk
签名,但是它说.keystore不满足私钥。
我哪里做错了?
发布于 2012-07-20 07:56:26
我找到了this页面,它告诉你如何将PFX导入JKS (Java Key Store):
keytool -importkeystore -srckeystore PFX_P12_FILE_NAME -srcstoretype pkcs12 -srcstorepass PFX_P12_FILE -srcalias SOURCE_ALIAS -destkeystore KEYSTORE_FILE -deststoretype jks -deststorepass PASSWORD -destalias ALIAS_NAME
发布于 2014-02-08 06:50:31
Justin(上图)是准确的。但是,请记住,根据您从谁那里获得证书(中间CA、根CA是否涉及)或pfx的创建/导出方式,有时它们可能会丢失证书链。在导入之后,您将拥有一个PrivateKeyEntry类型的证书,但是链的长度为1。
要解决此问题,有几个选项。在我看来更简单的选择是在IE中导入和导出pfx文件(选择在链中包含所有证书的选项)。在IE中导入和导出证书的过程应该非常简单,并在其他地方有很好的文档记录。
导出后,导入如上Justin所指的密钥库。现在,您将拥有一个密钥库,其证书类型为PrivateKeyEntry,并且证书链长度大于1。
如果您不执行上述操作,则某些基于.Net的Web服务客户端会出错(无法建立信任关系)。
发布于 2013-10-13 21:16:59
如果您使用JDK1.5或更低版本,keytool实用程序将不会有-importkeystore
选项(请参阅JDK 1.5 keytool documentation),MikeD提供的解决方案只能通过在安装了较新JDK1.6或更高版本的机器上传输.pfx
来使用。
JDK1.5或更低版本(如果您有Oracle产品)中的另一个选项是遵循以下Oracle文档中的说明:Using PFX and PEM Certificate Formats with Keystores。它描述了如何转换为.pem
格式,如何从这种文本格式提取证书信息,并使用java utils.ImportPrivateKey
实用程序(这是WebLogic产品附带的实用程序)将其导入到.jks
格式。
https://stackoverflow.com/questions/4217107
复制相似问题