关于keystore 证书转*.x509.pem 和*.pk8

来源:互联网 发布:如何注销淘宝卖家账号 编辑:程序博客网 时间:2024/05/21 20:09

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">最近同事分享了一篇文章</span><a target=_blank href="https://jaq.alibaba.com/community/art/show?spm=a313e.7916646.24000001.8.IxjB6x&articleid=339" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">文章链接</a><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> ,是关于动态调试的,后来仔细一看,这个功能可不止动态调试那么简单了,用不好可是能做很多坏事呢</span><img alt="生气" src="http://static.blog.csdn.net/xheditor/xheditor_emot/default/mad.gif" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);" /><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">。</span>

但是我可以怀着学习技术的心情在看,绝不做坏事。

这个文章说到了,怎么把classes.dex转成smali格式,smali相当于android的汇编语言;然后嵌入代码,最后重新打包。

问题出在最后,我手上的签名文件只有keystore类型,但是打包方式是

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

我想应该有工具可以对证书进行转换吧,我搜索了一番,还真有!但貌似是个人做工具,还要分才能下。被逼无奈,只好自己搞一个吧。


在网络搜集了一些资料以后,准备下手了。

第一步:先准备好你的签名证书,debug.keystore(随便取了个名字)


第二步,转换

    #keytool   -importkeystore -srckeystore debug.keystore   -destkeystore tmp.p12 -srcstoretype JKS         -deststoretype PKCS12   >>info.txt
这一步将keystore转换为PKCS12格式,这样还不能查看证书信息了。

第三步,

    #openssl  pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem  >>info.txt


这时候我们得到tmp.rsa.pem。这里面有我们需要的信息:

Bag Attributes    friendlyName: ****    localKeyID: *******Key Attributes: <No Attributes>-----BEGIN PRIVATE KEY-----*******-----END PRIVATE KEY-----Bag Attributes    friendlyName: ****    localKeyID:**********-----BEGIN CERTIFICATE-----******************-----END CERTIFICATE-----
(********内容不可见光,所以你们看不到)
大概就是这样的格式,看内容,证书的秘钥和私钥我们都拿到了。


接下来才是重要的


第五步,创建两个文件,分别是my.x509.pem和myprivate.rsa.pem,这两个文件的内容分别是:

my.x509.pem

Bag Attributes    friendlyName: ****    localKeyID:**********-----BEGIN CERTIFICATE-----******************-----END CERTIFICATE-----

myprivate.rsa.pem

Bag Attributes    friendlyName: ****    localKeyID: *******Key Attributes: <No Attributes>-----BEGIN PRIVATE KEY-----*******-----END PRIVATE KEY-----


到这个已经成功的一般,因为x509.pem已经有。


第六步,

openssl pkcs8 -topk8 -outform DER -in     myprivate.rsa.pem -inform PEM -out myprivate.pk8 -nocrypt  >>info.txt
!!!!!:-nocrypt 这个参数设定key不用加密,去掉则要输入密码。 


这样*.509.pem和*pk8都有了。


我用批命令写了一个工具。大家用得着就下载。


链接链接








0 0
原创粉丝点击