uniapp HBuilder云打包:证书文件不是有效地keystore文件
使用官网提供的命令生成证书
- keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
在云打包时提示证书文件不是有效地keystore文件
第一步:生成正常证书
- keytool -genkey -alias testalias -keyalg RSA -sigalg SHA1WithRSA -validity 36500 -keysize 1024 -keystore test.keystore -v
注意:两个关键点
- -sigalg SHA1WithRSA
- -keysize 1024
第二步:更改秘钥库类型
- keytool -importkeystore -srckeystore ./test.keystore -destkeystore ./test.keystore -deststoretype JKS
到这里,就可以使用新生成的证书进行云打包了
导致这个问题的原因
可以下载HBuilder官方的证书,使用keytool查看
发现
签名算法名称: SHA1withRSA
主体公共密钥算法:1024 位 RSA 密钥
密钥库类型:JKS
本机生成证书:
生成签名证书
使用keytool -genkey命令生成证书:
- keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
test.keystore是证书文件名称,可修改为自己想设置的文件名称
- keytool -importkeystore -srckeystore test.keystore -destkeystore test.keystore -deststoretype pkcs12
查看证书:
keytool -list -v -keystore test.keystore
输入密钥库口令:
➜ Android证书 git:(master) ✗ keytool -genkey -alias test -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: test
您的组织单位名称是什么?
[Unknown]: test
您的组织名称是什么?
[Unknown]: test
您所在的城市或区域名称是什么?
[Unknown]: test
您所在的省/市/自治区名称是什么?
[Unknown]: test
该单位的双字母国家/地区代码是什么?
[Unknown]: test
CN=test, OU=test, O=test, L=test, ST=test, C=test是否正确?
[否]: Y
输入 <test> 的密钥口令
(如果和密钥库口令相同, 按回车):
再次输入新口令:
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore test.keystore -destkeystore test.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
➜ Android证书 git:(master) ✗ ll
total 8
-rw-r--r-- 1 yoyo staff 2.2K 12 1 10:09 test.keystore
➜ Android证书 git:(master) ✗ keytool -importkeystore -srckeystore test.keystore -destkeystore test.keystore -deststoretype pkcs12
输入源密钥库口令:
已成功导入别名 test 的条目。
已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消
Warning:
已将 "test.keystore" 迁移到 Non JKS/JCEKS。将 JKS 密钥库作为 "test.keystore.old" 进行了备份。
➜ Android证书 git:(master) ✗ keytool -list -v -keystore test.keystore
输入密钥库口令:
密钥库类型: PKCS12
密钥库提供方: SUN
您的密钥库包含 1 个条目
别名: test
创建日期: 2019-12-1
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=test, OU=test, O=test, L=test, ST=test, C=test
发布者: CN=test, OU=test, O=test, L=test, ST=test, C=test
序列号: 51ca7b50
有效期为 Sun Dec 01 10:09:11 CST 2019 至 Tue Nov 07 10:09:11 CST 2119
证书指纹:
MD5: 86:87:9E:8D:F3:E5:1D:92:02:4A:B1:60:1C:59:4D:1C
SHA1: E0:FB:FB:1F:00:14:AC:7F:EE:24:7E:8A:3F:26:D4:8A:EA:7C:AC:7E
SHA256: 86:D0:DD:D5:94:76:4E:50:94:8B:3D:9C:5F:C2:B7:05:B5:F4:D9:4F:5B:C3:54:9C:04:50:06:10:27:23:97:00
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3
扩展:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 9B FD 1E E8 E0 1E EA 38 A3 2C 30 99 8B E2 96 A9 .......8.,0.....
0010: 20 7C EC 90 ...
]
]
*******************************************
*******************************************