Keytool是一个有效的安全钥匙和证书的管理工具.
Java 中的 keytool.exe (位于JDK\Bin下)可以用来创建数字证书,所有的数字证书是以一条一条(用别名区别,不区分大小)地存储在证书库(keystore|密钥库)中,证书库中的一条数字证书包含该证书的私钥,公钥, 以及对应的信息。证书库中的一条证书可以导出数字证书文件, 但导出的数字证书文件只包括主体信息和对应的公钥(不含私钥)。
Keytool把钥匙和证书储存到keystore. keystore默认以文件形式保存, 它有一个访问保护密码.

关于证书的几个概念:

证书是一个实体的数字签名, 还包含这个实体的公钥.    实体是你想信任的东西, 可以是一个人, 一个组织, 一个程序, 一台计算机.

公钥:是一个详细的实体的数字关联,并有意让所有想同这个实体发生信任关系的其他实体知道. 公钥用来检验签名.

数字签名:是实体用私钥签名(加密)自己的实体信息后得到的数据. 这条数据可以用实体的公钥来检验签名(解密)以鉴别实体的身份.

私钥:是一些数字,私钥和公钥组成公钥加密系统的钥匙对. 公钥用来加密数据,私钥用来计算签名. 公钥加密的信息只能由私钥解密,私钥签名的信息只能由公钥检验。

如下命令生成一个自签名的证书:
keytool -genkey -dname "CN=fingki,OU=server,O=server,L=bj,ST=bj,C=CN" -alias myCA -keyalg RSA -keysize 1024 -keystore myCALib -keypass 654321 -storepass 123456 -validity 3650
该命令将生成一个别名为myCA的自签名证书,证书的密钥对的密码为654321,证书中实体信息为
"CN=fingki,OU=server,O=server,L=bj,ST=bj,C=CN",存储在名为myCALib的keystore中(如果没有将自动生成一个),这个keystore的密码为123456,密钥对产生的算法指定为RSA,有效期为10年。

KeyTool使用举例

1.生成密钥对,修改密码
keytool -genkey -alias duke -keypass dukekeypasswd
这行命令的作用是产生一个新的钥匙对.其中duke为别名,dukekeypasswd为duke别名的密码.
如果你想修改密码, 可以用:
keytool -keypasswd -alias duke -keypass dukekeypasswd(旧) -new newpass(新)
将旧密码dukekeypasswd改为newpass.
Keytool -keypasswd -alias myCA -keypass 654321 -new newpass -storepass 123456 -keystore myCALib
更改证书库的密码
keytool -storepasswd -new 123456 -storepass 789012 -keystore truststore .其中-storepass指定原密码,-new指定新密码。

2.检查keystore
keytool -list -v -keystore keystore
Enter keystore password: your password(输入密码)

3.输出
输出keystore的条目duke到文件testkey:
keytool -export -alias duke -keystore keystore -rfc -file testkey
系统输出:
Enter keystore password: your password(输入密码)
Certificate stored in file
keytool -export -keystore monitor.keystore -alias monitor -file monitor.cer
从证书库monitor.keystore中将别名为monitor的证书导出到monitor.cer文件中. 该文件包含证书主体的信息及

证书的公钥, 但不包括私钥, 可以公开。
keytool -export -alias myCA -file myCA.cer -keystore myCALib -storepass 123456 -rfc
从证书库myCALib中将别名为myCA的证书导出到证书文件myCA.cer中。(其中-storepass指定keystore的密码,-rfc指定以可查看编码的方式输出,可省略)。

4.导入
导入证书到truststore:
keytool -import -alias dukecert -file testkey -keystore truststore
Enter keystore password: your new password(输入truststore新密码)

keytool -import -alias RapaServer -file Rapa.cert -keystore cacerts
向Java默认的证书库cacerts导入Rapa.cert
keytool -import -alias myCA -file myCA.cer -keystore truststore
如果没有名为truststore的keystore,将自动创建, 将会提示输入keystore的密码

5.删除keystore条目
keytool -delete -alias RapaServer -keystore d2aApplet.keystore
删除d2aApplet.keystore中的RapaServer这一条证书。
keytool -delete -alias myCA -keystore myCALib

6.通过证书文件查看证书信息
keytool -printcert -file myCA.cer

JDK的KeyTool和KeyStore等加密相关的更多相关文章

  1. JAVA调用 keytool 生成keystore 和 cer 证书

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

  2. tomcat7+jdk的keytool生成证书 配置https

    目前只会使用jdk的keytool来生成证书.本文仅介绍这种方法. 1Windows下: 1.1 生成keystore文件及导出证书 打开控制台: 运行: %JAVA_HOME%\bin\keytoo ...

  3. java 调用 keytool 生成keystore 和 cer 证书

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

  4. 使用jdk中keytool生成证书

    -genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥.私钥和证书 -alias 产生别名 -keystor ...

  5. keytool创建Keystore和Trustsotre文件

    一.生成一个含有一个私钥的keystore文件 user@ae01:~$ keytool -genkey -keystore keystore -alias jetty-azkaban -keyalg ...

  6. 用keytool创建Keystore和Trustsotre文件只需五步

    用keytool创建Keystore和Trustsotre文件 JSSE使用Truststore和Keystore文件来提供客户端和服务器之间的安全数据传输.keytool是一个工具可以用来创建包含公 ...

  7. python pyd 加密相关

    Dockerfile RUN 同时执行多条命令 Dokcerfile中的命令每执行一条即产生一个新的镜像,当前命令总是在最新的镜像上执行.如下Dockerfile: RUN cd /usr/share ...

  8. ios开发Base64编码以及加密相关学习

    一:.Base64补充 ```objc 1.Base64简单说明 描述:Base64可以成为密码学的基石,非常重要. 特点:可以将任意的二进制数据进行Base64编码 结果:所有的数据都能被编码为并只 ...

  9. 使用jdk的keytool 生成CA证书的方法

    一.CA证书生成设置总共分为以下5步: 步骤: 1.根据java的keytool生成CA根证书,放在服务器 2.根据服务器CA根证书导出客户端证书 3.tomcat增加SSL配置 4.客户端IE浏览器 ...

随机推荐

  1. 2017 Multi-University Training Contest - Team 3 Kanade's sum hd6058

    地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6058 题目: Kanade's sum Time Limit: 4000/2000 MS (J ...

  2. Java序列化的机制和原理 转

    转 http://developer.51cto.com/art/200908/147650.htm Java序列化的机制和原理 本文讲解了Java序列化的机制和原理.从文中你可以了解如何序列化一个对 ...

  3. Jenkins FreeStyle or Pipeline Job

    FreeStyle Job: 1. 需要在页面添加模块配置项与参数完成配置 2. 每个Job仅能实现一个开发功能 3. 无法将配置代码化,不利于Job配置迁移与版本控制 4. 逻辑相对简单,无额外学习 ...

  4. 【bzoj4976】宝石镶嵌(思维dp)

    题目传送门:bzoj4976 不得不说这是道脑洞dp,思路真的清奇. 我们可以发现,虽然n很大,但是k只有100,这里面似乎隐藏了什么玄机. 我们可以发现,设总共有$ tot $个二进制位在这n个数中 ...

  5. L1-3 宇宙无敌加法器 - 令人激动的一道题目

    L1-3 宇宙无敌加法器 - 令人激动的一道题目 感觉好久没有这么认真的做一道题了,今天看到一句话, 说是编程是一个工程型的工作,想要学好,"无他,唯手熟尔" 之前觉得自己笨,怀疑 ...

  6. mysql悲观锁以及乐观锁总结和实践

    悲观锁介绍(百科): 悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中, 将数据处于锁定状态.悲观锁的实现,往往 ...

  7. 03_zookeeper伪集群安装

    一句话说明白:在1台机器上模拟多台机器,对外提供服务 在理解zookeeper集群安装方法的基础上,本文描述如何将1个机器模拟为3个节点的zookeeper集群,建议先参考阅读本文的前一期 zooke ...

  8. C#之多线程

    多线程在C#中使用得非常频繁,线程之间的充分利用显得尤为重要,一般的写法都是得不到充分利用资源,本人针对多线程写了一种方法,可以充分利用资源,保证每次同时启动10条线程,现在执行完马上再启动一条,总之 ...

  9. IE与DOM的事件监听

    IE 事件监听 标准DOM不支持   注意几点: window.onload attachEvent detachEvent 标准DOM监听,ie不支持

  10. 用Chrome查看微信访问需要OAuth2.0网页授权的页面

    在PC浏览器打开某网站页面提示页面错误,是因为进行了OAuth2.0网页授权 有以下限制, 1.必须在微信打开 2.微信页面授权 其中第一步比较容易实现,修改下ua(user-agent),让其携带“ ...