【Android】Android签名:pem和pk8转化为keystore,jks
Android簽名,pem和pk8轉化為jks
- Android簽名證書
- Android簽名JKS
- JKS簽名生成
- How to use
- 擴展 jks 轉pem/pk8
Android簽名證書
- 前因
- 目前獲取系統權限的方法
- 我們對第一點,做下記錄,那么會拿到廠商提供的以下兩個文件
platform.pk8 保存private key 加密
platform.x509.pem X.509證書 存儲數字證書,公鑰信息還能存各種key
- 但是這兩種文件不能直接進行簽名,需要調用對App簽名
- 對于這種方式
需要先生成apk,輸入命令簽名,再使用adb安裝
調試 非常不方便,故想將pk8 和pem轉成通用的jks或者keystore的簽名
Note:
android一般除了使用jarsigner簽名,還有使用signapk 后者位于android源碼,前者位于jdk中。兩者使用的文件格式不同前者使用JKS,后者使用公鑰+私鑰是分開的
Android簽名JKS
- 準備工作
- openssl安裝
1. 官網,無Windows版本
2. 鏡像,有Windows版本
- 這里給大家排個坑
首先對應好你的編譯APP的JDK版本,如果是JDK8,就下載1.1.1,
如果是高的版本就下載3.0.0,不然你的JDK8keytool識別不了
JKS簽名生成
主要分三步
jks
keytool -importkeystore -destkeystore platform.jks -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass [密碼] -alias [別名]keystore
keytool -importkeystore -destkeystore platform.keystore -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass [密碼] -alias [別名]- 在這里我遇到了一個小坑
keytool 錯誤: java.io.IOException: parseAlgParameters failed: ObjectIdentifier() -- data isn't an object ID (tag = 48)
解決方案: 使用jdk16的keytool
How to use
- 項目使用jks
Example:
signingConfigs {signconfig {keyAlias 'platform'keyPassword 'android'storeFile file('../app/platform.jks')storePassword 'android'} }buildTypes {debug {signingConfig signingConfigs.signconfigminifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}release {signingConfig signingConfigs.signconfigminifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'} }- Bingo,現在Android Studio 調試安裝都是platform簽名后的apk
擴展 jks 轉pem/pk8
主要分五步
dump的文件格式
Bag AttributesfriendlyName: [別名]localKeyID: 54 69 6D 65 20 31 35 37 31 38 39 30 30 31 35 30 30 30 Key Attributes: <No Attributes> -----BEGIN PRIVATE KEY----- .... -----END PRIVATE KEY----- Bag AttributesfriendlyName: [別名]localKeyID: 54 69 6D 65 20 31 35 37 31 38 39 30 30 31 35 30 30 30 subject=C = US, ST = California, L = Mountain View, O = Android, OU = Android, CN = Android, emailAddress = android@android.com issuer=C = US, ST = California, L = Mountain View, O = Android, OU = Android, CN = Android, emailAddress = android@android.com-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----dos命令不好實現,建議采用bash
grep -zoe '-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----' tmp.rsa.pem>cert.x509.pemdos命令不好實現,建議采用bash
grep -zoe '-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----' tmp.rsa.pem>private.rsa.pem- 至此已經生成pem pk8 格式的兩個簽名文件
參考
Android簽名證書 keystore jks pem x509
pk8/x509.pem轉換為keystore
總結
以上是生活随笔為你收集整理的【Android】Android签名:pem和pk8转化为keystore,jks的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “约见”面试官系列之常见面试题第三十三篇
- 下一篇: 前端学习(2137):webpack的介