您的位置:首页 > 移动开发 > Android开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: