什么样的Keytool是Java数据证书的管理工具,Keytool将密钥key )和证书certificates )存在于名为keystore的文件中。 keystore包含以下两种类型的数据:
密钥实体——密钥)或私钥与配对公钥使用非对称加密)可信证书实体——使用公钥http://www
为什么KeyStore :从名字上来说,我们可以把它称为私钥库。 是为了保护自己开发的APP软件。
1 .私钥可以证明此APP是由某个个人或企业开发的。 生成KeyStore时,开发者输入自己的姓名、单位、组织、所在城市、省、国家代码等信息。
2 .可以使用私钥更新后续APP。 如果不在使用发行APP时使用的私钥打包的APP中用于升级,则会将其视为单独的APP,并且当前发行的APP将无法升级。 如果keyStore丢了就不能升级。 )。
keystore是开发者用的,为了防止篡改和盗版,请参阅Keystore可以简单理解为一个存放应用签名的文件。
同一个应用不同的签名就会安装不同的app,不会覆盖安装。
如果自己制作了与王者荣耀同名的icon APP,用户下载安装该盗版APP后,将会覆盖本地的正版王者荣耀APP。 这样的话,当然开发者不允许,所以需要唯一的签名。 这样,别人就不用担心用和自己的APP相同的名字被复盖。
如何使用JDK\Bin目录中的Java keytool.exe创建数字证书。
JDK的keytool通用命令:
-genkey在用户的主目录中创建缺省文件“. keystore”
-alias将生成别名
-keystore指定密钥库的名称。 keystore文件不包含各种生成的信息
-keyalg指定密钥的算法。 RSA DSA等。 如果未指定默认使用DSA )
-validity指定创建的证书的有效期为多少天
-指定-keysize密钥的长度
-指定-storepass密钥库的密码获取keystore信息所需的密码) )。
-指定-keypass别名条目的密码私钥密码)
-dname指定证书的所有者信息。 例如,CN=姓名和姓氏,OU=组织单位名称,O=组织名称,L=城市或地区名称,ST=州或州名称,C=单位,两个字母的国家代码
-list表示密钥库中的证书信息keytool -list -v -keystore指定了keystore -storepass口令
-v显示密钥库中的证书详细信息
将-export别名指定的证书导出到文件keytool -export -alias所需的别名-keystore指定的keystore -file指定的导出证书的位置和证书名称-storepass密码
-file参数指定要导出到文件的文件名
-delete删除密钥库条目keytool -delete -alias指定要删除的单个-keystore指定keystore -storepass密码
– printcert keytool-printcert-file ABC.CRT显示导出的证书信息
-keypasswd更改密钥库中指定的条目密码keytool -keypasswd -alias要更改的别名-keypass旧密码-new新密码-storepass keystore密码- keystool
-storepasswdkeystore密码keytool-store passwd-keystore e :\ABC.keystore 需要更改密码的keystore )-storepass 123456
指定将-import签名的数字证书导入密钥库的keytool -import -alias导入项的别名-keystore指定keystore -file要导入的证书
创建keystore文件,并生成名为abc.keystore的文件
c :\program files\Java\JDK1.8.0_ 91\bin keytool-genkey-alias ABC-keystore ABC.keystore-keyalg RSA
检查keystore:
c :\program files\Java\JDK1.8.0_ 91\bin keytool-v-list-keystore * *.keystore