建议使用 keytool -importkeystore -srckeystore D:xx- pkcs12“ 迁移到行业标准格式PKCS12

Posted 威威dett

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了建议使用 keytool -importkeystore -srckeystore D:xx- pkcs12“ 迁移到行业标准格式PKCS12相关的知识,希望对你有一定的参考价值。

最近在用android Studio Build ->Generate Signed Bundle or APK 生成一个key store的时候有个异常提示
网上搜索其他人使用命令行生成的签名的时候也会有下面的提示(本人用命令行没有出现提示):


但是,直接点击 ok,也会在对应的目录中生成key store文件,即使我们不按照上面的提示转换也可以正常使用的。但是官方建议我们转换一下我们还是转换一下吧

步骤:

一. 通过android studio或者命令行生成我们的xxxxxx.jks签名文件,先忽略上面的异常提示

  1. 命令行生成jks案例:我是在桌面上生成一个xxxxxx.jks签名文件

    keytool -genkey -alias xxxxxx -keypass xxxxxx -keyalg RSA -keysize 1024 -validity 36500 -keystore C:\\Users\\JWZ\\Desktop\\xxxxxx.jks -storepass xxxxxx
    

    结果
    上面的命令就是你给密钥文件设置的生成位置,key alias、key password和key store password,回车后需要继续按照提示输入相关信息,依次填写好信息后,输入 Y 确认信息即可。

  2. android studio生成简单步骤介绍:

    Build -> Generate Signed Bundle or APK -> 选择APK -> 选择 Create New,之后填写相关信息即可
    

二. 通过步骤1生成xxxxxx.jks->xxxxxx2.jks签名文件(2个文件名不能相同),打开命令行执行如下转换命令:

keytool -importkeystore -srckeystore C:\\Users\\JWZ\\Desktop\\xxxxxx.jks -destkeystore C:\\Users\\JWZ\\Desktop\\xxxxxx2.jks -deststoretype pkcs12

查看签名信息

keytool -list -v -keystore C:\\Users\\JWZ\\Desktop\\xxxxxx2.jks

生成的xxxxxx2.jks就是转换后的签名文件,使用这个给apk签名就行了

转换过程中注意

  1. keytool 错误: java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big.
    这个是由于第二步骤转换的时候,转换前的文件名和转换后的文件名设置了相同的,才出现上面的异常。
    网上有人说填写一样的名字会自动重命名前面的文件,我这边没有成功,这里主要写不同的名字即可
    如:xxxxxx.jks -> xxxxxx2.jks

  2. keytool不是內部或外部命令
    这个是由于java的环境变量没有配置好,需要重新配置,具体配置可自行百度,配置完要保证命令行中输入 javajavac都是 可用的才行

  3. 签名文件.keystore 和.jks情况相似,处理方式类似
    keystore 是Eclipse 打包生成的签名
    jks是Android studio 生成的签名

以上是关于建议使用 keytool -importkeystore -srckeystore D:xx- pkcs12“ 迁移到行业标准格式PKCS12的主要内容,如果未能解决你的问题,请参考以下文章

收藏夹吃灰系列:实现springboot使用JDK自带的keytool生成SSL证书并配置HTTPS | 超级详细,建议收藏!

错误记录Android 生成签名文件乱码报错 ( keytool -importkeystore -srckeystore 1.jks -destkeystore 2.jks -deststo )

uniapp安卓生成签名证书

读取pkcs12证书信息

使用keytool 生成证书

使用keytool生成证书