前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >041android初级篇之apk签名key keystore格式转pk8+x509.pem

041android初级篇之apk签名key keystore格式转pk8+x509.pem

作者头像
上善若水.夏
发布2018-09-28 10:48:07
1.7K0
发布2018-09-28 10:48:07
举报
文章被收录于专栏:上善若水上善若水上善若水

常用的android的签名工具有两个即jarsigner 和apksigner。这两种使用的key格式不一样,keystore格式转pk8+x509.pem

1. 将keystore文件转换为pkcs12格式

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

2. 将PKCS12 dump成pem

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

tmp.rsa.pem 是文本格式可以直接查看

打开文本:

Bag Attributes
    friendlyName: dtcamera
    localKeyID: 54 69 6D 65 20 31 34 35 38 38 31 37 33 31 30 37 30 36 
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
Bag Attributes
    friendlyName: dtcamera
    localKeyID: 54 69 6D 65 20 31 34 35 38 38 31 37 33 31 30 37 30 36 
subject=/CN=DTC
issuer=/CN=DTC
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----

打开文本可以看到私钥(PRIVATE KEY )和证书( CERTIFICATE);

复制“BEGIN CERTIFICATE” “END CERTIFICATE” 到(新建个文件) cert.x509.pem 复制 “BEGIN RSA PRIVATE KEY” “END RSA PRIVATE KEY” 到(同上) private.rsa.pem

cert.x509.pem 文件即是我们最后需要的证书文件

3. 生成pk8格式的私钥

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

cert.x509.pem private.pk8 即是我们最后需要的文件。

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

4. 用法

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

jarsigner 的用法

jarsigner -verbose -keystore android.keystore -signedjar android_signed.apk android.apk android.keystore

使用这种方式会报错:找不到 的证书链。×× 必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。

jarsigner -verbose -keystore  DT.jks -signedjar  signed.apk  unsigned.apk "别名"

具体可参考 参考链接1 感谢橘小兔-一米阳光的文章,参考链接2,帮我解决了这个问题,亲测可行。

参考链接

  1. 命令行jarsigner签字和解决找不到证书链错误
  2. keystore文件转换格式为pk8+x509.pem
  3. jarsigner - JAR 签名和校验工具
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.03.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 将keystore文件转换为pkcs12格式
  • 2. 将PKCS12 dump成pem
  • 3. 生成pk8格式的私钥
  • 4. 用法
  • jarsigner 的用法
  • 参考链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档