Java中提供了keytool生成密钥文件的方式,用于一定程度的隐私保护。Android中就是通过此证书方式,用于apk的安装验证,在相关项目中使用对应的jks验证文件,可以保证不同开发者对同一工程进行调试时,无需卸载安装。

keytool简介


keytool是java的数据证书管理工具,keytool将密钥(key)和证书(certificates)存在keystore文件中,该文件中包含两种数据:

  • 密钥实体(key entity)-密钥(sercet key),又或者是私钥和配对公钥(采用非对称加密)
  • 可信任的证书实体(trusted certificate entities)-只包含公钥
每个keystore都关联一个不区分大小写的别名alias。

keytool参数介绍


JDK1.8中keytool参数介绍

-J             -- specify java option 指定java选项,通常为环境或内存选项
-alias         -- alias 别名-certreq       -- command to generate certificate signing request 生成证书签发请求CSR用于发送给CA替换keystore中已经存在的cetrificate chain(可以指定csr文件,否则在stdout输出 示例:keytool –certReq –keystore keystore.jks –file mycsr.csr)-delete        -- command to delete entry 删除密钥库
-dest          -- destination alias 目标别名-dname         -- X.500 distinguish name  指定证书拥有者信息 例如:  "CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码" (格式:CN=cName, OU=orgUnit, O=org, L=city, S=state, C=countryCode)-export        -- command to store certificate 将别名指定的证书导出到文件  keytool -export -alias 需要导出的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称 -storepass 密码-file          -- specify certificate file 参数指定导出到文件的文件名
-file          -- specify certificate signing request file
-file          -- specify identity database file-genkey        -- command to generate a key pair 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书-help          -- command to print help message-import        -- command to import certificate or certificate chain 将已签名数字证书导入密钥库  keytool -import -alias 指定导入条目的别名 -keystore 指定keystore -file 需导入的证书-keyalg        -- key algorithm 指定密钥的算法 (如 RSA  DSA(如果不指定默认采用DSA))-keyclone      -- command to create new keystore entry-keypass       -- password for private key  指定别名条目的密码(私钥的密码)-keypasswd     -- command to change password for private key   修改密钥库中指定条目口令    keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new  新密码  -storepass keystore密码  -keystore sage-keysize       -- key size  指定密钥长度-keystore      -- keystore location  指定密钥库的名称(产生的各类信息将不在.keystore文件中)-list          -- command to print keystore entry 显示密钥库中的证书信息      keytool -list -v -keystore 指定keystore -storepass 密码-new           -- new password
-new           -- nwe password for private key
-new           -- password for private key of new entry-noprompt      -- disable interaction with the user (If the -noprompt option is provided, then the user is not prompted for a new destination alias. Existing entries are overwritten with the destination alias name. Entries that cannot be imported are skipped and a warning is displayed.)-printcert     -- command to print certificate in a human-readable format 查看导出的证书信息          keytool -printcert -file yushan.crt-rfc           -- make certificate format printable as RFC 1421 如果指定了 -rfc 选项,将以可打印的编码格式输出证书。
keytool -list  -rfc -keystore e:/yushan.keystore -storepass 123456-selfcert      -- command to generate X.509 v1 self-signed certificate-sigalg        -- signature algorithm (The sigalg value specifies the algorithm that should be used to sign the CSR.)-storepass     -- password for keystore 指定密钥库的密码(获取keystore信息所需的密码)-storepasswd   -- command to change password for keystore 修改keystore口令      keytool -storepasswd -keystore e:/yushan.keystore(需修改口令的keystore) -storepass 123456(原始密码) -new yushan(新密码)-storetype     -- keystore type (For keytool and jarsigner, you can specify a keystore type at the command line, with the -storetype option. For Policy Tool, you can specify a keystore type with the Keystore menu.)-trustcacerts  -- use cacerts (If the -trustcacerts option was specified, then additional certificates are considered for the chain of trust, namely the certificates in a file named cacerts.)-v             -- make certificate format human-readable
-v             -- verbose mode 显示密钥库中的证书详细信息
-validity      -- valid days 指定创建的证书有效期多少天
上述主要参数参考网上说明,部分直接引用了官方文档中描述,实际使用过程应该根据需求调整,此处不做过多描述。

Java-密钥keytool及KeyStore的使用相关推荐

  1. Java密钥库及keytool使用详解

    1. JAVA密钥库 1.1. keytool执行方式简单分析 keytool工具说明见下文. 在Windows环境分析keytool工具执行方式如下: JDK与JRE的bin目录中存在keytool ...

  2. 【可食用】KeyTool生成KeyStore,证书、公钥、私钥文档JAVA生成,JAVA实现ECC签名验签

    KeyTool生成KeyStore,证书.公钥.私钥文档JAVA生成,JAVA实现ECC签名验签 一.首先我们可以写个工具类生成密钥对.证书.公钥.私钥文本 jksAndCerGenerator.ja ...

  3. java pem 私钥_将PEM导入Java密钥库

    在我的情况下,我有一个pem文件,其中包含两个证书和一个用于相互SSL身份验证的加密私钥.所以我的pem文件看起来像这样: -----BEGIN CERTIFICATE----- ... -----E ...

  4. java密钥库文件存在但为空_java安全套接层SSL示例

    1.建立密钥库: keytool -genkey -v -keyalg RSA -alias test -keystore sslkeystore 其中:-keyalg RSA表示密钥算法RSA,-a ...

  5. java通过密保找回密码_如何进入非密码保护的Java密钥库或更改密码?

    我试图导入一个受信任的证书到 Java cacerts keystore,但我有一个问题.我试图列出现有的可信证书,似乎密钥库没有密码保护. $ keytool -list -keystore cac ...

  6. 用keytool创建Keystore和Trustsotre文件

    http://zjumty.iteye.com/blog/1885356 注: keytool在OS X中经常显示为乱码,它在中文OS X中输出GB2312编码,所以要将terminal的默认编码更改 ...

  7. java中Keytool的使用总结

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

  8. keytool生成keystore、truststore、证书

    keytool生成keystore.truststore.证书 1. 打开cmd命令行,进入文件夹(如:D:\test_icessl_key).keytool会把接下来生成的所有文件都保存到此处. 2 ...

  9. keytool generate keystore for mac

    mac 下 利用 keytool 生成 keystore cd 到 以下目录 /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Ho ...

  10. Java使用keytool创建CA证书

    keytool是一个密钥和证书管理工具 1.keytool工具位置 keytool工具在 JDK 的安装目录的 bin 目录下面 2.keytool工具命令展示 打开命令行进入 bin 目录,然后输入 ...

最新文章

  1. AI 医疗公司“战疫”在前线
  2. 交换机与集线器的区别
  3. 从ReLU到Sinc,26种神经网络激活函数可视化
  4. Spring3 表达式语言(SpEL)介绍
  5. mysql的show profile使用总结
  6. 承担集团数万应用、研发人员日常工作,阿里持续交付平台的设计、迭代之道...
  7. 量子位首款周边卫衣上线,给你AI的力量
  8. Linux shell脚本详解及实战(三)——shell脚本循环
  9. 基于bootsplash的嵌入式linux启动画面定制
  10. C++编程之自定义日志类 ——log4cpp使用详解
  11. qt 设置进程优先级_如何设置最低优先级的进程?
  12. 智能电视以及机顶盒屏幕截取的方法
  13. 智能未来:聚焦2018世界人工智能大会
  14. ARM使用术语清除(flush)和清理(clean)表示对cache的两种基本操作
  15. 基于paddlepaddle构建resnet神经网络的蝴蝶分类
  16. eclipse svn is already locked 的解决办法
  17. 人脸识别门禁入主社区 新潮不代表不安全
  18. 解决excel导入数据存在公式的问题
  19. 美团企业版背后,费控和「know-how」的双重苦战
  20. 中国蜗轮减速机市场趋势报告、技术动态创新及市场预测

热门文章

  1. c语言第11章ppt,C语言程序设计第11章xg.ppt
  2. Luogu5788 【模板】单调栈
  3. [分组背包]Luogu1064 金明的预算方案
  4. java serviceimple,java apiimpl怎么调用 service接口
  5. 对象流的序列化和反序列化
  6. 2018最新电大网考计算机,2018年最新电大网考计算机应用基础统考试题.doc
  7. c语言超声波壁障源码,【图片】超声波避障小车源程序【精】【单片机吧】_百度贴吧...
  8. java web jsp页面,jsp引入页面 Java Web JSP详解(下)
  9. java如何实现容器_Java的容器都有哪些,怎么实现的
  10. 空格表示 java_java 正则表达式 空格怎么表示