Android签名制作,keystore文件转换格式为pk8+x509.pem
2016-05-11 14:49
645 查看
制作签名的步骤:
C:/Program Files/Java/jdk1.6.0_10/bin>keytool -genkey -alias android123.keystore
-keyalg RSA -validity 20000 -keystore android123.keystore
输入keystore密码:[密码不回显]
再次输入新密码:[密码不回显]
您的名字与姓氏是什么?
[Unknown]: android123
您的组织单位名称是什么?
[Unknown]: www.android123.com.cn
您的组织名称是什么?
[Unknown]: www.android123.com.cn
您的组织名称是什么?
[Unknown]: www.android123.com.cn
您所在的城市或区域名称是什么?
[Unknown]: New York
您所在的州或省份名称是什么?
[Unknown]: New York
该单位的两字母国家代码是什么
[Unknown]: CN
CN=android123, OU=www.android123.com.cn, O=www.android123.com.cn, L=New York, ST
=New York, C=CN 正确吗?
[否]: Y
输入<android123.keystore>的主密码
(如果和 keystore 密码相同,按回车):
其中参数-validity为证书有效天数,这里我们写的大些20000天。还有在输入密码时没有回显,只管输入就可以了,一般位数建议使用20位,最后需要记下来后面还要用
接下来我们开始为apk文件签名了。
keystore文件转换格式为pk8+x509.pem
Android 一般除了使用jarsigner签名 还有使用signapk 后者位于android源码 前者位于jdk中。两者使用的文件格式不同前者使用JKS
后者使用公钥+私钥 是分开的
第一步 先v把keystore文件转换为pkcs12格式
[java] view
plain copy
keytool -importkeystore -srckeystore debug.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12
第二步 将PKCS12 dump成pem 这样就可以按照文本形式查看了
[java] view
plain copy
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
plain copy
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
原文地址:
http://www.android123.com.cn/androidkaifa/173.html http://blog.csdn.net/ilittleone/article/details/17914995
C:/Program Files/Java/jdk1.6.0_10/bin>keytool -genkey -alias android123.keystore
-keyalg RSA -validity 20000 -keystore android123.keystore
输入keystore密码:[密码不回显]
再次输入新密码:[密码不回显]
您的名字与姓氏是什么?
[Unknown]: android123
您的组织单位名称是什么?
[Unknown]: www.android123.com.cn
您的组织名称是什么?
[Unknown]: www.android123.com.cn
您的组织名称是什么?
[Unknown]: www.android123.com.cn
您所在的城市或区域名称是什么?
[Unknown]: New York
您所在的州或省份名称是什么?
[Unknown]: New York
该单位的两字母国家代码是什么
[Unknown]: CN
CN=android123, OU=www.android123.com.cn, O=www.android123.com.cn, L=New York, ST
=New York, C=CN 正确吗?
[否]: Y
输入<android123.keystore>的主密码
(如果和 keystore 密码相同,按回车):
其中参数-validity为证书有效天数,这里我们写的大些20000天。还有在输入密码时没有回显,只管输入就可以了,一般位数建议使用20位,最后需要记下来后面还要用
接下来我们开始为apk文件签名了。
keystore文件转换格式为pk8+x509.pem
Android 一般除了使用jarsigner签名 还有使用signapk 后者位于android源码 前者位于jdk中。两者使用的文件格式不同前者使用JKS
后者使用公钥+私钥 是分开的
第一步 先v把keystore文件转换为pkcs12格式
[java] view
plain copy
keytool -importkeystore -srckeystore debug.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12
第二步 将PKCS12 dump成pem 这样就可以按照文本形式查看了
[java] view
plain copy
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
plain copy
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
原文地址:
http://www.android123.com.cn/androidkaifa/173.html http://blog.csdn.net/ilittleone/article/details/17914995
相关文章推荐
- Android关于身份证号码的验证
- Android通用流行框架大全
- RecyclerView 添加 Footer and Header
- Android中跨进程通信方式之使用AIDL进阶篇
- Android获取屏幕的实际大小
- Android Studio值得推荐的主题背景
- Android L新增东西
- Android SVG
- 用AndroidStudio导入github项目
- android简单的AIDL使用示例
- android的四种定位方式
- ANDROID内存优化(大汇总——全)
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- ANDROID内存优化(大汇总——中)
- 在Android关机中插入脚本
- Only the original thread that created a view hierarchy can touch its views. 是怎么产生的
- Android优化
- ANDROID内存优化(大汇总——上)
- Android从菜鸟到笨鸟:ViewPager+Handler实现广告栏无限循环
- Android service进程保护