Java-密钥keytool及KeyStore的使用
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的使用相关推荐
- Java密钥库及keytool使用详解
1. JAVA密钥库 1.1. keytool执行方式简单分析 keytool工具说明见下文. 在Windows环境分析keytool工具执行方式如下: JDK与JRE的bin目录中存在keytool ...
- 【可食用】KeyTool生成KeyStore,证书、公钥、私钥文档JAVA生成,JAVA实现ECC签名验签
KeyTool生成KeyStore,证书.公钥.私钥文档JAVA生成,JAVA实现ECC签名验签 一.首先我们可以写个工具类生成密钥对.证书.公钥.私钥文本 jksAndCerGenerator.ja ...
- java pem 私钥_将PEM导入Java密钥库
在我的情况下,我有一个pem文件,其中包含两个证书和一个用于相互SSL身份验证的加密私钥.所以我的pem文件看起来像这样: -----BEGIN CERTIFICATE----- ... -----E ...
- java密钥库文件存在但为空_java安全套接层SSL示例
1.建立密钥库: keytool -genkey -v -keyalg RSA -alias test -keystore sslkeystore 其中:-keyalg RSA表示密钥算法RSA,-a ...
- java通过密保找回密码_如何进入非密码保护的Java密钥库或更改密码?
我试图导入一个受信任的证书到 Java cacerts keystore,但我有一个问题.我试图列出现有的可信证书,似乎密钥库没有密码保护. $ keytool -list -keystore cac ...
- 用keytool创建Keystore和Trustsotre文件
http://zjumty.iteye.com/blog/1885356 注: keytool在OS X中经常显示为乱码,它在中文OS X中输出GB2312编码,所以要将terminal的默认编码更改 ...
- java中Keytool的使用总结
Keytool 是一个Java 数据证书的管理工具 ,Keytool 将密钥(key)和证书(certificates)存在一个称为keystore的文件中. 在keystore里,包含两种数据: ( ...
- keytool生成keystore、truststore、证书
keytool生成keystore.truststore.证书 1. 打开cmd命令行,进入文件夹(如:D:\test_icessl_key).keytool会把接下来生成的所有文件都保存到此处. 2 ...
- keytool generate keystore for mac
mac 下 利用 keytool 生成 keystore cd 到 以下目录 /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Ho ...
- Java使用keytool创建CA证书
keytool是一个密钥和证书管理工具 1.keytool工具位置 keytool工具在 JDK 的安装目录的 bin 目录下面 2.keytool工具命令展示 打开命令行进入 bin 目录,然后输入 ...
最新文章
- AI 医疗公司“战疫”在前线
- 交换机与集线器的区别
- 从ReLU到Sinc,26种神经网络激活函数可视化
- Spring3 表达式语言(SpEL)介绍
- mysql的show profile使用总结
- 承担集团数万应用、研发人员日常工作,阿里持续交付平台的设计、迭代之道...
- 量子位首款周边卫衣上线,给你AI的力量
- Linux shell脚本详解及实战(三)——shell脚本循环
- 基于bootsplash的嵌入式linux启动画面定制
- C++编程之自定义日志类 ——log4cpp使用详解
- qt 设置进程优先级_如何设置最低优先级的进程?
- 智能电视以及机顶盒屏幕截取的方法
- 智能未来:聚焦2018世界人工智能大会
- ARM使用术语清除(flush)和清理(clean)表示对cache的两种基本操作
- 基于paddlepaddle构建resnet神经网络的蝴蝶分类
- eclipse svn is already locked 的解决办法
- 人脸识别门禁入主社区 新潮不代表不安全
- 解决excel导入数据存在公式的问题
- 美团企业版背后,费控和「know-how」的双重苦战
- 中国蜗轮减速机市场趋势报告、技术动态创新及市场预测
热门文章
- c语言第11章ppt,C语言程序设计第11章xg.ppt
- Luogu5788 【模板】单调栈
- [分组背包]Luogu1064 金明的预算方案
- java serviceimple,java apiimpl怎么调用 service接口
- 对象流的序列化和反序列化
- 2018最新电大网考计算机,2018年最新电大网考计算机应用基础统考试题.doc
- c语言超声波壁障源码,【图片】超声波避障小车源程序【精】【单片机吧】_百度贴吧...
- java web jsp页面,jsp引入页面 Java Web JSP详解(下)
- java如何实现容器_Java的容器都有哪些,怎么实现的
- 空格表示 java_java 正则表达式 空格怎么表示