如何将keystory转化为pk8+pem后给APK签名(包含自动转化工具和openssl工具)

在转换前首先要保证开发环境必须要有openssl工具,这个工具提供个下载链接链接:http://pan.baidu.com/s/1eRAoKb4 密码:1p60 。下载解压后,只需要将bin/openssl.exe的路径放进系统的环境变量中,即可。

执行命令的步骤如下:
1. keytool -importkeystore -srckeystore debug.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12

  1. openssl pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem (注意如果没有openssl工具或者没有正确的将openssl.exe路径添加进环境变量中,将会报错)

  2. 复制“BEGIN CERTIFICATE” “END CERTIFICATE” 到(新建个文件) cert.x509.pem
    [
    pem里面内容(下的一样):
    —–BEGIN CERTIFICATE—–
    。。。。
    —–END CERTIFICATE—–
    ]
    复制 “BEGIN RSA PRIVATE KEY” “END RSA PRIVATE KEY” 到(同上) private.rsa.pem
    这一步需要注意的是,有些keystory文件转换出来的 tmp.rsa.pem,里面不止一个私钥和证书,具体先问清楚客户需要用哪个私钥和证书,再复制。

4.openssl pkcs8 -topk8 -outform DER -in private.rsa.pem -inform PEM -out private.pk8 -nocrypt

完毕 收集文件 cert.x509.pem private.pk8 其余的中间文件删除即可

这里提供一个将keystory自动转化pk8和pem的工具,下载链接链接:http://pan.baidu.com/s/1nvlUkQl 密码:no1x 使用这个工具的方法如下:

java -jar ks2x509.jar autokey1.keystore ceshi 123456 123456

需要注意的是,如果keystory中包含不只有一个私钥和证书时,不可以用这个工具转换,会报空指针的错误。

最后使用生成的pk8和pem给APK签名:

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

(signak.jar文件在编译过的源码目录:out\host\linux-x86\framework\中)

你可能感兴趣的:(如何将keystory转化为pk8+pem后给APK签名(包含自动转化工具和openssl工具))