安卓Android基础开发程序员Android

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

2018-05-02  本文已影响33人  b923228cc7b5

项目中的签名是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!

上一篇 下一篇

猜你喜欢

热点阅读