建议使用 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签名文件,先忽略上面的异常提示
-
命令行生成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 确认信息即可。 -
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签名就行了
转换过程中注意:
-
keytool 错误: java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big.
这个是由于第二步骤转换的时候,转换前的文件名和转换后的文件名设置了相同的,才出现上面的异常。
网上有人说填写一样的名字会自动重命名前面的文件,我这边没有成功,这里主要写不同的名字即可
如:xxxxxx.jks -> xxxxxx2.jks
-
keytool不是內部或外部命令
这个是由于java的环境变量没有配置好,需要重新配置,具体配置可自行百度,配置完要保证命令行中输入java
和javac
都是 可用的才行 -
签名文件.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 )