主要介绍了涉及到keystore、jks签名证书时用的一些常见属性与命令 ~
keyStore、Jks签名证书五部曲
不知你是否有这样一个疑问:keyStore 和 jks签名证书的区别是什么?
其实主要区别就是生成时选用的工具有所不同而已
在不同平台、场景要求的签名证书不同,所以需要根据场景自行转换签名证书 ~
- keyStore:一般由 Eclipce 或 dom(cmd)生成
- jks:一般由 AndroidStudio 内部生成
科普一下dom命令行生成签名时,常见的命令属性~
keytool命令
-certreq [-v] [-protected]
[-alias <别名>] [-sigalg <sigalg>]
[-file <csr_file>] [-keypass <密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-changealias [-v] [-protected] -alias <别名> -destalias <目标别名>
[-keypass <密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-delete [-v] [-protected] -alias <别名>
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-exportcert [-v] [-rfc] [-protected]
[-alias <别名>] [-file <认证文件>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-genkeypair [-v] [-protected]
[-alias <别名>]
[-keyalg <keyalg>] [-keysize <密钥大小>]
[-sigalg <sigalg>] [-dname <dname>]
[-validity <valDays>] [-keypass <密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-genseckey [-v] [-protected]
[-alias <别名>] [-keypass <密钥库口令>]
[-keyalg <keyalg>] [-keysize <密钥大小>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-help
-importcert [-v] [-noprompt] [-trustcacerts] [-protected]
[-alias <别名>]
[-file <认证文件>] [-keypass <密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-importkeystore [-v]
[-srckeystore <源密钥库>] [-destkeystore <目标密钥库>]
[-srcstoretype <源存储类型>] [-deststoretype <目标存储类型>]
[-srcstorepass <源存储库口令>] [-deststorepass <目标存储库口令>]
[-srcprotected] [-destprotected]
[-srcprovidername <源提供方名称>]
[-destprovidername <目标提供方名称>]
[-srcalias <源别名> [-destalias <目标别名>]
[-srckeypass <源密钥库口令>] [-destkeypass <目标密钥库口令>]]
[-noprompt]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-keypasswd [-v] [-alias <别名>]
[-keypass <旧密钥库口令>] [-new <新密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-list [-v | -rfc] [-protected]
[-alias <别名>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-printcert [-v] [-file <认证文件>]
-storepasswd [-v] [-new <新存储库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
属性介绍
|命令 |含义 |
|--|--|
|-genkey | 生成|
|-keystore test.keystore| 对应keystore 文件名|
|-alias test |别名|
|-keyalg RSA |加密方式|
|-validity 365 |年限|
图示
系统介绍
|命令 |含义 |
|--|--|
|-genkey | 生成|
|-keystore test.keystore| 对应keystore 文件名|
|-alias test |别名|
|-keyalg RSA |加密方式|
|-validity 365 |年限|
**`系统介绍`**
|命令 |含义 |
|--|--|
|-alias <alias> |要处理的条目的别名|
|-keyalg <keyalg> |密钥算法名称|
|-keysize <keysize> |密钥位大小|
|-sigalg <sigalg> |签名算法名称|
|-destalias <destalias> |目标别名|
|-dname <dname> |唯一判别名|
|-startdate <startdate> |证书有效期开始日期/时间|
|-ext <value> |X.509 扩展|
|-validity <valDays> |有效天数|
|-keypass <arg> |密钥口令|
|-keystore <keystore> |密钥库名称|
|-storepass <arg> |密钥库口令|
|-storetype <storetype> |密钥库类型|
|-providername <providername> |提供方名称|
|-providerclass <providerclass> |提供方类名|
|-providerarg <arg> |提供方参数|
|-providerpath <pathlist> |提供方类路径|
|-v |详细输出|
|-protected |通过受保护|
图示
常见功能
- 修改keystore文件密码
cmd命令:keytool -storepasswd -new 新密码 -keystore [android.keystore签名证书]
- 修改keystore文件别名
cmd命令:keytool -changealias -keystore [android.keystore签名证书] -alias 原别名 -destalias 新别名
- 修改keystore文件别名的密码
cmd命令:keytool -keypasswd -alias 别名 -new android -keystore [android.keystore签名证书]