android keystore文件转换格式为pk8和x509.pem
2015-12-08 10:09
337 查看
android 一般除了使用jarsigner签名 还有使用signapk 后者位于android源码 前者位于jdk中。两者使用的文件格式不同前者使用JKS 后者使用公钥+私钥 是分开的
第一步 先v把keystore文件转换为pkcs12格式
[java] view
plaincopy
keytool -importkeystore -srckeystore debug.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12
第二步 将PKCS12 dump成pem 这样就可以按照文本形式查看了
[java] view
plaincopy
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格式的私钥
[java] view
plaincopy
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
第一步 先v把keystore文件转换为pkcs12格式
[java] view
plaincopy
keytool -importkeystore -srckeystore debug.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12
第二步 将PKCS12 dump成pem 这样就可以按照文本形式查看了
[java] view
plaincopy
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格式的私钥
[java] view
plaincopy
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
相关文章推荐
- Android Studio:中文注释乱码错误解决办法
- 在OpenCV for Android 2.4.5中使用SURF(nonfree module)
- Android:进程间通信交互
- Android Root插件模式:Xposed源码剖析
- 自定义控件之-手势锁
- Android 获得View的宽和高
- android 设置壁纸,开启出现短暂黑屏问题
- android系统中log机制
- android(42)(音乐播放器,视频播放器)
- Android Studio 1.0.2 设置内存大小
- 【转】Android Studio 的小小配置
- Android进程的内存管理分析
- Android使用wheelView实现简单类似ios PickerView选择器效果
- Android DiskLruCache完全解析,硬盘缓存的最佳方案
- android学习笔记2:Activity的生命周期
- 【Android】IntDef用法示例\API说明:比int更安全,比enum更轻量
- 关于com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536的解决方法
- listview baseAdapter 常用实现方法
- Android实现刮刮卡抽奖(上)
- Android-Fragment的onActivity诡异Bug