Android签名文件转化为pk8和pem
Android簽名工具
常用的android的簽名工具有:jarsigner 和apksigner。jarsigner使用keystore文件,apksigner使用pk8+x509.pem。
什么是.pem和.pk8文件
.pem
在android對apk簽名的時候,.pem這種文件就是一個X.509的數字證書,里面有用戶的公鑰等信息,是用來解密的。文件格式里面不僅可以存儲數字證書,還能存各種key。.pk8
以.pk8為擴展名的文件,應該和PKCS #8是對應的,用來保存private key。
keystore文件轉化為pk8+pem
1.將keystore文件轉換為pkcs12格式
keytool -importkeystore -srckeystore my.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS122. 將PKCS12 dump成pem
openssl pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pemtmp.rsa.pem 是文本格式可以直接查看。
打開文本可以看到私鑰(PRIVATE KEY )和證書(CERTIFICATE);
復制“BEGIN CERTIFICATE” “END CERTIFICATE” 到(新建個文件) cert.x509.pem
復制 “BEGIN RSA PRIVATE KEY” “END RSA PRIVATE KEY” 到(同上) private.rsa.pem
cert.x509.pem 文件即是我們最后需要的證書文件
3.生成pk8格式的私鑰
openssl pkcs8 -topk8 -outform DER -in private.rsa.pem -inform PEM -out private.pk8 -nocrypt cert.x509.pem private.pk8即是我們最后需要的文件。
*備注:
-nocrypt 這個參數設定key加密 如果設置了這個參數 下面簽名 只要證書+key 不需要密碼了 如果加密 應該
openssl pkcs8 -topk8 -outform
DER -in private.rsa.pem -inform PEM -out private.pk8 接下來輸入密碼*
4.用法
java -jar signapk.jar cert.x509.pem private.pk8 unsigned.apk signed.apkjarsigner 的用法
jarsigner -verbose -keystore android.keystore -signedjar android_signed.apk android.apk android.keystore使用這種方式會報錯:找不到 的證書鏈。×× 必須引用包含專用密鑰和相應的公共密鑰證書鏈的有效密鑰庫密鑰條目。
jarsigner -verbose -keystore DT.jks -signedjar signed.apk unsigned.apk "別名"參考
Android簽名證書jks轉換成signapk使用的分離模式
總結
以上是生活随笔為你收集整理的Android签名文件转化为pk8和pem的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(2186):知识回顾
- 下一篇: “约见”面试官系列之常见面试题之第四十五