Android:使用keytool修改数字证书中字段(应用签名信息)

39 篇文章 0 订阅
35 篇文章 1 订阅


前言

在公司需求开发中,订制方希望修改数字证书中的字段,体现某一方的参与;原先公司都是统一用一个签名文件对打包的APK进行签名,在这种需求背景下,就需要对统一的签名文件中的签名进行修改

本文介绍使用keytool完成相关需求

一、keytool

keytool 是一个Java 数据证书的管理工具 ,keytool 将密钥(key)和证书(certificates)存在一个称为keystore的文件中 在keystore里,包含两种数据:

  • 密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)
  • 可信任的证书实体(trusted certificate entries)——只包含公钥

正常情况下,在Java安装过程中自带keytool,配置JDK环境变量后,即可在cmd中直接使用keytool.exe命令。
打开cmd,输入keytool,出现以下界面,说明配置正常

在这里插入图片描述

二、修改步骤

1.keytool查看签名信息

在修改签名文件里面的字段值之前,我们需先看到签名文件里的信息,我们使用如下命令进行查看

keytool -v -list -keystore [你的jks文件路径]

查看结果如下:
在这里插入图片描述

2.keytool修改签名信息

使用如下命令对想要修改的字段值进行修改,注意这里的修改会直接覆盖进所有者和发布者的内容中,并不是只单单修改发布者和所有者中的一个字段值

keytool -selfcert -alias myalias -keypass aliaspassword -keystore my.jks -storepass jkspassword -dname "CN=FirstAndLastName1, OU=OrganizationalUnit1, O=Organization1, L=CityOrLocality1, ST=StateOrProvince1, C=CountryCode1, EMAILADDRESS=email1@gmail.com" 

修改完成后再用查看命令查看即可

三、相关keytool命令总结

查看jks签名库里的签名信息:

keytool -v -list -keystore keystore.jks

更改别名:

keytool -changealias -keystore my.jks -alias myalias -destalias otheralias

删除别名:

keytool -delete -alias myalias -keystore my.jks -storepass jkspassword

查看.apk包里的签名详细:

jarsigner -verify -verbose -certs app-release.apk

通过命令生成密钥库和别名

keytool -genkey -alias myalias -keyalg RSA -keystore my.jks -keysize 2048 -validity 9125 -dname "CN=FirstAndLastName, OU=OrganizationalUnit, O=Organization, L=CityOrLocality, ST=StateOrProvince, C=CountryCode, EMAILADDRESS=email@gmail.com"

----注:-keyalg:加密算法 -keysize:加密位数 -validity:有效期(天) -dname:证书详细信息

导出证书:

keytool -export -alias myalias -keystore my.jks -file myalias.crt -storepass jkspassword

打印证书信息:

keytool -printcert -file myalias.crt

将证书导入到密钥库并生成别名

keytool -import -alias myotheralias -file myalias.crt -keystore my1.jks -storepass jkspassword

修改别名里的信息,注MD5的值也会同时被修改

keytool -selfcert -alias myalias -keypass aliaspassword -keystore my.jks -storepass jkspassword -dname "CN=FirstAndLastName1, OU=OrganizationalUnit1, O=Organization1, L=CityOrLocality1, ST=StateOrProvince1, C=CountryCode1, EMAILADDRESS=email1@gmail.com" 

总结

以上便是想要介绍的keytool基本方法使用啦

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值