Android中签名文件相关转换

更新时间 🔔🕙 2023年9月1日

利用pk8,x509.pem转成jks签名文件

把pk8 跟 x509放到一个文件夹,并使用cd命令进入文件夹

openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
# 其中android 为密码, Androiddebugkey为别名
openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:android -name androiddebugkey
keytool -importkeystore -deststorepass android -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass android

生成的jks,如果在android studio中gradle编译报错algorithm hmacpbesha256 not available,说明本地的jdk没有包含该算法包。

该算法包在jdk11.0.12中加入,所以将gradle使用的jdk升级到11.0.12之后的版本即可。

从platform.x509.pem和platform.pk8签名文件中,获取原始的公钥

platform.pk8 文件中提取私钥:

使用 OpenSSL 工具将 platform.pk8 文件中的私钥提取出来。运行以下命令:
这将从 platform.pk8 中提取私钥并保存在 private_key.pem 文件中。

openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out private_key.pem

platform.x509.pem 文件中提取证书:

使用 OpenSSL 工具将 platform.x509.pem 文件中的证书提取出来。运行以下命令:
这将从 platform.x509.pem 中提取证书并保存在 certificate.der 文件中。

openssl x509 -inform PEM -outform DER -in platform.x509.pem -out certificate.der

将证书和私钥转换为 PKCS12 格式:

使用以下命令将证书和私钥合并到一个 PKCS12 文件中:

openssl pkcs12 -export -in certificate.der -inkey private_key.pem -out certificate.p12

从 PKCS12 文件中提取公钥:

使用以下命令从 PKCS12 文件中提取公钥:
这将从 PKCS12 文件中提取公钥并保存在 public_key.pem 文件中。

openssl pkcs12 -in certificate.p12 -clcerts -nokeys -out public_key.pem
转载请备注引用地址:编程记忆 » Android中签名文件相关转换