JDK的KeyTool和KeyStore等加密相关

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

posted on 2017-05-16 15:06 myJavaEE 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/myJavaEE/p/6861456.html

JDK的KeyTool和KeyStore等加密相关相关推荐

  1. Tomcat服务器配置https双向认证,使用JDK的keytool生成证书(适用于web、安卓、IOS)

    Tomcat服务器配置https双向认证,使用JDK的keytool生成证书(适用于web.安卓.IOS) 一.原理 1.HTTP:平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的( ...

  2. Ubuntu下利用JDK的Keytool配置Tomcat7.0的SSL协议

    Ubuntu下利用JDK的Keytool配置Tomcat7.0的SSL协议: 1.用JDK自带的Keytool生成服务器证书:   1)打开终端控制台,转向tomcat主目录,执行生成keystore ...

  3. 使用JDK的 keytool 生成JKS,修改查看JKS信息

    什么是keytool keytool 是个密钥和证书管理工具.它使用户能够管理自己的公钥/私钥对及相关证书,在JDK 1.4以后的版本中都包含了这一工具,所以不用再上网去找keytool的安装,电脑如 ...

  4. 一、使用JDK的keytool生成JKS以及获取JKS的信息

    文章目录 一.使用JDK的keytool生成JKS以及获取JKS的信息 1.生成证书: 2.查看证书 3.导出证书: 一.使用JDK的keytool生成JKS以及获取JKS的信息 1.生成证书: 在命 ...

  5. 《JDK学习》使用JDK的keytool生成p12证书

    由于前段时间在研究itext技术中的签章技术中遇到了数字签名的问题,需要用到p12证书,因此就撰写一篇用我们jdk自带的keytool 工具生成p12证书的方法供各位交流. keytool 简介 ke ...

  6. keytool generate keystore for mac

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

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

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

  8. 这可能是最生动的加密相关科普文章

    转载自   这可能是最生动的加密相关科普文章 谁都不想在通信过程中被别人"窃取"小秘密.本文借助一对情侣与八卦女.猥琐男的斗智故事,为大家讲述科普密码学基础知识.既有料又有趣,深入 ...

  9. 美国国家信用合作社管理局(NCUA)发布RFI询问信用合作社加密相关问题

    国家信用合作社管理局 (NCUA) 在其三名董事会成员一致投票赞成后于周四发布了信息请求(RFI),向社用合作社询问分布式账本技术 (DLT) 和去中心化金融 (DeFi) 可能如何影响信用合作社系统 ...

  10. keytool生成keystore、truststore、证书

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

最新文章

  1. 【Git】ubuntu安装git
  2. DEARGUI的安装
  3. mysql 拼接sql批量执行_Mysql 学习笔记之 SQL 执行过程
  4. mybatis 中#和$的区别
  5. 我设计了一个牛逼的本地缓存!
  6. [转].NET学习网站收集
  7. IO多路转接模型-----epoll
  8. linux下邮件查看命令
  9. 闲来无事,就把lnmp的php升级到php-5.2.17最新稳定版本
  10. Nginx的主要函数调用关系分析
  11. web-java-Java Concurrency Utilities
  12. sql server完全卸载
  13. 线性分类的鸢尾花数据集Jupyter实践
  14. ICLR 2022 | 合作博弈新范式:为可解释性等机器学习估值问题提供新方法
  15. 飞思卡尔智能车准备篇
  16. 在局域网内怎样使两台计算机共享,实现局域网内两台windows计算机之间数据共享...
  17. tuxedo错误码6_tuxedo错误解析和常用配置说明
  18. c聊天室系统asp ajax,利用AJAX和ASP.NET实现简单聊天室
  19. ESP8266学习——Flash
  20. python到底要学多久才能找到工作?

热门文章

  1. javascript 遍历数组的常用方法(迭代、for循环 、for… in、for…of、foreach、map、filter、every、some,findindex)
  2. Ubuntu 14.10/15.04/15.10 安装docker
  3. Oracle 中 start with 递归查询、case when 条件表达式、rowid 伪列去重
  4. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_16-CMS服务端工程搭建-导入CMS数据库...
  5. Java商城秒杀系统的设计与实战视频教程(SpringBoot版)_汇总贴
  6. 阶段3 3.SpringMVC·_07.SSM整合案例_06.ssm整合之编写MyBatis框架
  7. 电脑配置Java环境变量之后,在cmd中仍然无法识别
  8. Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F 表情插入mysql 报错
  9. [原]Greenplum failed segment的恢复方法
  10. Swift新手教程3-字符串String