Android平台签名证书

背景:在 uni-app 开发中使用自有证书,主要是为了提升应用的安全性、控制证书的生命周期与管理、提高身份验证和信任度,尤其是在对数据保护和防止未授权访问有较高要求的场合。根据应用的需求和安全性要求,选择合适的证书管理方式是非常重要的。
📜 签名证书在 Android 的作用
简单说就是(签名证书就是你的「开发身份证」,也是你应用的「防伪标签」。):

✅ 保证应用的来源可靠 + 被系统信任
✅ 防止应用被别人恶意篡改

内容解释
身份认证签名证书证明这个 APK 是你自己打包出来的,不是别人伪造的。
防止篡改如果有人拿到你的 APK 改了代码、打包发布,签名会对不上,系统直接安装失败。
应用升级验证Android 系统在更新 App 时,会比对「新旧 APK 的签名」,只有签名一样才允许升级。签名变了,用户手机会报「安装包签名不一致」错误,更新失败。
上架要求如果你要发布到各大应用商店(比如华为、应用宝、小米、Google Play),必须有正确的签名证书,不然根本不给审核上架。

准备工作:
1.安装jdk
2.配置环境
3.生成密钥
4.项目中应用
可从Oracle官方下载jre安装包
可以通过以下方式,检测是否安装
在这里插入图片描述

**

1. 安装jdk

**

安装对应的版本
下载完成点击exe文件按弹出界面一直下一步直到完成(建议不修改文件存放地址)
文件下载
不更改路径会在出现一个这样的文件夹
在这里插入图片描述

**

2.配置环境

**
配置环境变量:配置完点击确定(没有成功-再次重复此步骤查看path设置)
在这里插入图片描述
可以通过cmd(win + r)命令,验证是否安装成功

在这里插入图片描述

到此----环境已经安装完成
**

3.生成密钥

**

使用keytool -genkey命令生成证书
(keytool: 是 Java 自带的工具,用于生成和管理密钥库、证书和公钥基础设施(PKI)相关的内容。你提到的命令生成一个 RSA 密钥对,并创建一个密钥库。下面逐一解释每个选项的含义)

keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore

注:
请添加图片描述

> 选项解释:  
   -genkey:
>           这个选项表示你要生成一个新的密钥对(一个公钥和一个私钥)。密钥对通常用于加密通信、签名等。
   -alias testalias:
>           alias    是为生成的密钥对指定一个名称(别名)。这个别名用于以后引用密钥对。例如,在密钥库中,如果你有多个密钥对,每个都可以用一个唯一的别名来区分。在这里插入代码片在这里,testalias 就是生成的密钥对的别名。  
  -keyalg RSA:
>           keyalg 指定密钥对的算法。这里使用的是 RSA 算法,它是最常用的公钥加密算法之一。RSA    支持公钥加密和私钥解密,也可以用于数字签名。   
  -keysize 2048:
>           keysize 指定密钥的大小。2048 表示密钥长度为 2048 位。一般来说,密钥长度越大,安全性越强。2048 位在 RSA    中被认为是一个合适的安全标准。如果你选择更大的值(如 4096 位),安全性更高,但计算性能会受到影响。      
> -validity 36500:
>           validity 指定密钥对的有效期,单位是天。在这个例子中,36500 天相当于 100 年。也就是说,生成的密钥对会在 100    年后失效。一般情况下,你会根据需求设定合适的有效期,过期后需要重新生成密钥对。   
> -keystore    test.keystore:
        keystore 指定密钥库文件的路径和名称。密钥库是一个存储证书和私钥的容器。在这个例子中,密钥库的文件名是    test.keystore,它将被保存在当前目录。你可以指定一个不同的文件路径来存储密钥库。密钥库通常是一个 .jks 或 .p12    
> 文件(Java 密钥库和 PKCS12 格式)。如果指定的文件不存在,keytool 会自动创建它。

步骤
在这里插入图片描述

查看有没生成成功证书信息:

keytool -list -v -keystore test.keystore  
Enter keystore password: //输入密码,回车

会输出以下格式信息:

别名: testalias
创建日期: 2024-12-30
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=long, OU=qz, O=qz, L=cd, ST=sc, C=zg
发布者: CN=long, OU=qz, O=qz, L=cd, ST=sc, C=zg
序列号: 2a0421d3
生效时间: Mon Dec 30 14:38:32 CST 2024, 失效时间: Wed Dec 06 14:38:32 CST 2124
证书指纹:
         SHA1: 1F:A9:35:F9:2C:CD:61:83:39:33:CD:83:AC:B4:72:89:39:F2:EE:C1
         SHA256: 7B:62:EE:1C:BF:71:03:38:B0:32:36:BA:05:A2:74:52:9E:36:D9:1D:60:87:F4:75:AA:AD:FB:25:25:0C:79:DF
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 19 D4 DB 98 8E C0 FF BB   B1 B8 C4 91 1C 82 88 88  ................
0010: 99 2D E7 3F                                        .-.?
]
]

秘钥文件地址默认在:

C:\Users\long\test.keystore

**

4.项目中应用

**
在开发工具中设置填写对应的信息

在这里插入图片描述
最后最后:
在remade.md文档注释(便于协同开发和维护)

在这里插入图片描述

uniapp配置
## app打包证书
文件:test.keystore
密码:123456
别名: testalias
创建日期: 2024-12-30
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=long, OU=qz, O=qz, L=cd, ST=sc, C=zg
发布者: CN=long, OU=qz, O=qz, L=cd, ST=sc, C=zg
序列号: 2a0421d3
生效时间: Mon Dec 30 14:38:32 CST 2024, 失效时间: Wed Dec 06 14:38:32 CST 2124
证书指纹:
         SHA1: 1F:A9:35:F9:2C:CD:61:83:39:33:CD:83:AC:B4:72:89:39:F2:EE:C1
         SHA256: 7B:62:EE:1C:BF:71:03:38:B0:32:36:BA:05:A2:74:52:9E:36:D9:1D:60:87:F4:75:AA:AD:FB:25:25:0C:79:DF
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值