keystore文件转换格式为pk8+x509.pem

原文地址:
http://blog.csdn.net/ilittleone/article/details/17914995


android 一般除了使用jarsigner签名 还有使用signapk 后者位于android源码 前者位于jdk中。两者使用的文件格式不同前者使用JKS 后者使用公钥+私钥 是分开的


第一步 先v把keystore文件转换为pkcs12格式

keytool   -importkeystore -srckeystore debug.keystore   -destkeystore tmp.p12 -srcstoretype JKS         -deststoretype PKCS12

第二步 将PKCS12 dump成pem 这样就可以按照文本形式查看了

openssl

pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem


  接下来打开文件 intermediate.rsa.pem 看到 PRIVATE KEY 还有CERT PS:private 那边可能有RSA KEY 这个不用管
Bag Attributes
    friendlyName: androiddebugkey
    localKeyID: 54 69 6D 65 20 31 33 38 38 39 37 38 34 32 36 38 36 39 
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
Bag Attributes
    friendlyName: androiddebugkey
    localKeyID: 54 69 6D 65 20 31 33 38 38 39 37 38 34 32 36 38 36 39 
subject=/C=US/O=Android/CN=Android Debug
issuer=/C=US/O=Android/CN=Android Debug
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
复制“BEGIN CERTIFICATE”  “END CERTIFICATE” 之间的信息到(新建个文件) cert.x509.pem
[
 pem里面内容(下的一样):
-----BEGIN CERTIFICATE-----
。。。。
-----END CERTIFICATE-----
]
复制 “BEGIN RSA PRIVATE KEY”   “END RSA PRIVATE KEY”之间的信息 到(新建个文件) private.rsa.pem

第三 生成pk8格式的私钥

openssl

pkcs8 -topk8 -outform DER -in     private.rsa.pem -inform PEM -out private.pk8 -nocrypt   


 完毕 收集文件  cert.x509.pem   private.pk8 其余的中间文件删除即可
PS:

-nocrypt 这个参数设定key加密 如果设置了这个参数 下面签名 只要证书+key 不需要密码了 如果加密 应该 openssl pkcs8 -topk8 -outform DER -in private.rsa.pem -inform PEM -out private.pk8 接下来输入密码

用法 java -jar signapk.jar cert.x509.pem private.pk8 unsigned.apk signed.apk


bug解决:

(1)MAC verified OK Error outputting keys and certificates

http://stackoverflow.com/questions/2640691/how-to-export-private-key-from-a-keystore-of-self-signed-certificate/2641032

里面有一句话:

For everyone getting the "Error outputting keys and certificates" error: try using the same password for source and destination. –  James Watkins Dec 14 '13 at 2:35


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
keytool platform.x509.pem 文件是一个 X.509 格式的证书文件。在计算机安全领域,X.509 是一种通用的证书标准,用于在公钥加密体系中对实体进行身份验证。 keytool 是一个Java密钥和证书管理工具,用于管理Java密钥库(JKS)中的密钥、证书和可信任的证书颁发机构(CA)。 .platform.x509.pem 文件是基于 X.509 标准的证书文件的命名方式,并且带有.platform前缀,可能表示其是与某个特定平台相关的证书。 使用keytool命令可通过以下方式操作 platform.x509.pem 文件: 1. 导入证书:可以使用 keytool 命令导入指定的证书到 Java 密钥库。例如,可以使用以下命令将 platform.x509.pem 导入到密钥库中: `keytool -importcert -alias mycert -file platform.x509.pem -keystore mykeystore.jks` 2. 查看证书:可以使用 keytool 查看证书的详细信息。例如,可以使用以下命令查看 platform.x509.pem 证书的详细信息: `keytool -printcert -file platform.x509.pem` 3. 导出证书:可以使用 keytool 将密钥库中的证书导出为独立的证书文件。例如,可以使用以下命令将密钥库中名为 mycert 的证书导出为 platform.x509.pem 文件: `keytool -exportcert -alias mycert -file platform.x509.pem -keystore mykeystore.jks` 需要注意的是,以上命令仅为示例,具体的命令参数和使用方法可能会因实际情况而异。在使用 keytool 时,应注意保证密钥库和证书文件的安全,并且遵循最佳实践来管理密钥和证书。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值