安卓签名证书格式更改:jks转keystore

项目中的签名是jks格式,可是由于某个坑货渠道后台只能上传keystore格式的签名文件,所以要在不能更改签名的前提下将jks格式转换为keystore格式。

假设我们最初的签名文件是original.jks,我们需要更改为original.keystore。首先我们需要一个模板签名文件,然后先将jks转为p12,再将p12导入到这个模板文件中即可。详细过程如下:

1. 创建模板签名

可以通过AS或者terminal来创建。下面是命令创建template.keystore

keytool -genkey -v -keystore template.keystore -alias myAlias -keyalg RSA -validity 10000 -keystore /Users/logan/template.keystore

为了便于对比更改前后的签名文件信息,我们先查看原始签名的证书指纹(MD5,SHA1,SHA256)

keytool -v -list -keystore /Users/logan/Documents/certificate/original.keystore

2. jks转pkcs12

keytool -importkeystore -srckeystore /Users/logan/Documents/certificate/mygamez_fingersoft_hcr2_china_unicom.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore client.p12

3. pkcs12转keystore

pkcs12是不能直接转keystore的,网上很多说法都是错误的,我们需要将pkcs12导入到一个现有的keystore当中,

keytool -v -importkeystore -srckeystore /Users/logan/client.p12 -srcstoretype PKCS12 -destkeystore template.keystore -deststoretype JKS

这个命令会直接在现有的template.keystore上更改并自动覆盖掉原来的问题件,所以新生成的签名文件仍然叫template.keystore。
现在template.keystore的签名应该与original.jks的签名信息是一样的了。
可以通过以下命令来验证

keytool -v -list -keystore /Users/logan/Documents/certificate/template.keystore

Done!

    原文作者:辛梓荣
    原文地址: https://www.jianshu.com/p/15d86930ffde
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞