Android签名证书 keystore jks pem x509
Android签名证书
背景
因业务需求,经常与系统厂商打交道,大多需要厂商开放root权限
目前获取系统权限的总结有三种方式(均有实际应用)
- platform签名
- root固件 (有su)
- 调用厂商封装好的系统权限的sdk
后两者调试比较简单,不多做介绍. 针对第一点,厂商会提供两个文件
platform.pk8 保存private key 加密
platform.x509.pem X.509证书 存储数字证书,公钥信息还能存各种key
但是这两种文件不能直接进行签名,需要调用
java -jar signapk.jar platform.x509.pem platform.pk8 old.apk [new].apk
Android Studio 生成apk,还需额外执行以上步骤,调试非常不方便,故想将pk8 和pem 转成通用的jks或者keystore的签名
Note:
android一般除了使用jarsigner签名,还有使用signapk 后者位于android源码,前者位于jdk中。两者使用的文件格式不同前者使用JKS,后者使用公钥+私钥是分开的
signapk.jar 不是系统自带,需要额外下载
环境配置
下载 openssl
选择合适的文件下载安装,完成后配置环境变量
pem/pk8 转换jks/keystore
keystore,jks本身是一个东西,没有区别;在eclipse上生成的是.keystore后缀,在andorid studio上生成的是.jks后缀;
主要分三步
pk8 私钥解密pem格式
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out platform.priv.pem -nocrypt
私钥通过公钥pem加密pk12
openssl pkcs12 -export -in platform.x509.pem -inkey platform.priv.pem -out platform.pk12 -name [别名]
需要输入两次密码
通过java的keytool 工具生成 keystore
keytool -importkeystore -destkeystore platform.jks -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass [密码] -alias [别名]
别名需要跟步骤2的一致,同样输入两次密码
windows 下合并后如下
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out platform.priv.pem -nocrypt
openssl pkcs12 -export -in platform.x509.pem -inkey platform.priv.pem -out platform.pk12 -name [别名]
keytool -importkeystore -destkeystore platform.jks -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass [密码] -alias [别名]
pause
Android Studio 项目使用jks
android {signingConfigs {MySignName {keyAlias "[别名]"keyPassword "[密码]"storeFile file('[jks路径]')storePassword "[密码]"}}buildTypes {debug {signingConfig signingConfigs.MySignName}release{signingConfig signingConfigs.MySignName}}
}
现在Android Studio 调试安装都是platform签名
扩展 jks 转pem/pk8
主要分五步
java keytool 转成 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
dump的文件格式
Bag AttributesfriendlyName: [别名]localKeyID: 54 69 6D 65 20 31 35 37 31 38 39 30 30 31 35 30 30 30 Key Attributes: <No Attributes> -----BEGIN PRIVATE KEY----- .... -----END PRIVATE KEY----- Bag AttributesfriendlyName: [别名]localKeyID: 54 69 6D 65 20 31 35 37 31 38 39 30 30 31 35 30 30 30 subject=C = US, ST = California, L = Mountain View, O = Android, OU = Android, CN = Android, emailAddress = android@android.com issuer=C = US, ST = California, L = Mountain View, O = Android, OU = Android, CN = Android, emailAddress = android@android.com-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----
复制“BEGIN CERTIFICATE” “END CERTIFICATE” 到(新建个文件) cert.x509.pem
dos命令不好实现,建议采用bash
grep -zoe '-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----' tmp.rsa.pem>cert.x509.pem
复制 “BEGIN RSA PRIVATE KEY” “END RSA PRIVATE KEY” 到(同上) private.rsa.pem
dos命令不好实现,建议采用bash
grep -zoe '-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----' tmp.rsa.pem>private.rsa.pem
生成pk8格式的私钥
openssl pkcs8 -topk8 -outform DER -in private.rsa.pem -inform PEM -out private.pk8 -nocrypt
至此已经生成pem pk8 格式的两个签名文件
参考
.pem和.pk8是什么文件?
签名证书keystore,jks,pk8,x509.pem
keystore文件转换格式为pk8+x509.pem
Android签名证书 keystore jks pem x509相关推荐
- 签名证书keystore,jks,pk8,x509.pem
.keystore,.jks本身是一个东西,没有区别:在eclipse上生成的是.keystore后缀,在andorid studio上生成的是.jks后缀: 生成.keystore http://w ...
- 安卓APP证书Android签名证书.keystore文件制作生成
将app发布到应用宝时,而上传安装包时提示如下图时, 但您或您的团队从未上传该应用,您可以通过认领功能认领应用.认领成功后该应用会自动转入您的账户下,同时保留应用全部数据,您可以在应用管理中进行管理. ...
- android签名忘记密码,修改Android签名证书keystore的密码、别名alias以及别名密码
之前在测试Eclipse ADT的Custom debug Eclipse ADT的Custom debug keystore所需证书规格,提到过自定义调试证书的密码和 1. 首先当然是先复制一份正式 ...
- 我的Android进阶之旅------修改Android签名证书keystore的密码、别名alias以及别名密码...
转载于:http://blog.k-res.net/archives/1229.html 和 http://blog.k-res.net/archives/1671.html ADT允许自定义调试用 ...
- Android 签名证书生成及jks与keystore 相互转换
Android 签名证书生成及jks与keystore 相互转换 keytool 这个工具是JDK里面自带的,配置好JDK环境可直接在命令行完成一下操作! 生成签名证书: 生成JKS证书: keyto ...
- Android平台签名证书(.keystore)生成指南
来源:https://ask.dcloud.net.cn/article/35777 Android平台签名证书(.keystore)生成指南 分类:HTML5+ Android证书 Android平 ...
- 「移动端」Android平台签名证书(.keystore)生成指南
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站.→传送门 本文主要介绍Android平台签名证书(.keystore)生成指南 Android平台打包 ...
- Android平台签名证书(.keystore)生成指南及高德地图配置
利用keytool 工具,生成Android平台签名证书(.keystore)生成指南 生成签名证书 使用keytool -genkey命令生成证书: keytool -genkey -alias t ...
- Android签名证书
在最新的Android SDK中我们看到了Android签名证书机制的出现,也就是说几乎和Symbian OS v9.x以上平台构架一样,都需要数字签名证书才可以运行,这也是考虑到平台的安全性,同样也 ...
最新文章
- CSS3 Media Queries:移动 Web 的完美开端
- 学号 20175223 《Java程序设计》第4周学习总结
- Redis 初探-安装与使用
- 如何关闭线程池?会创建不会关闭?调用关闭方法时线程池里的线程如何反应?
- 飞特商城后台管理系统是接私活利器,企业级快速开发框架 商城后台 取之开源,用之开源
- gradle学习(19)-log系统
- 票据的生命周期与人的灵魂
- python函数式编程:apply, map, lambda和偏函数
- 文件搜索工具Listary中文版快速上手使用教程
- java中常用的设计模式(*)
- 人工智能在反洗钱领域的应用探索
- html 设置origin,background-origin属性怎么用
- 新疆计算机一级考试excel公式,2020年XX专业技术人员继续教育公需课《Excel快速统计》试题及答案...
- 经历 成长——致逝去的时光
- Container Station搭建个人网盘Nextcloud(Mariadb)
- Pytorch 学习率衰减 之 余弦退火与余弦warmup 自定义学习率衰减scheduler
- 创建采购订单BADI流程
- 视频正在os x使用中_如何在OS X中使用家长控制来保护孩子
- day01血字的研究
- STM32F103代码远程升级(三)基于YModem协议串口升级程序的实现