Java Keytool 是什么?

Keytool 是Java提供的密钥(Key)和证书(Certificate)管理工具,用于管理公钥/私钥对以及相关证书。
Keytool是Java自带的工具,安装Java即可。位于Java安装的bin目录中, 比如C:\Program Files\Java\jre1.8.0_131\bin

如果安装了JDK则配置了JAVA_HOME, 则证书库文件位于 “%JAVA_HOME%/jre/lib/security/cacerts”。

密钥存储形式

Keytool 将密钥和证书存在 keystore 文件中,该文件包含:

  • 密钥: 如果是非对称加密,则包含私钥和配对公钥; 对称加密则只包含密钥。
  • 可信任的证书实体, 只包含公钥
    密钥存储在密钥库中,一个密钥库可以存储多个密钥对,每个密钥都取一个别名。

keytool 命令选项

  • -genkeypair 生成一对非对称密钥
  • -alias 别名
  • -keysize 密钥长度
  • -keystore 生成密钥库的路径和名字。不指定的话则是在用户主目录, 文件名是 .keystore
  • -keyalg 密钥算法,比如RSA, DSA
  • -certreq 生成密钥请求文件
  • -import 导入证书
  • -export 导出证书
  • -validity 证书有效期, 默认90天
  • -list 列出证书库中的已有证书
  • -delete 删除某个证书
  • -keypass 密钥口令
  • -storepass 密钥库口令
  • -dname , 拥有者信息, CN姓名 , OU 组织单位名称, O组织名称, ST省市 , C国家
    -dname "CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=CN"

genkeypair 生成公私密钥对

keytool -genkeypair -alias myapp -keyalg RSA -keystore myapp.keystore

  • 以上命令会要求输入密码等信息, 证书库密码默认是 changeit
  • 名字和姓氏输入的是域名或是主机名。
  • 密钥库的密码和密钥的密码可以相同,也可以分别设置。第一次输入的是证书库的管理密码, 第二次输入的是该证书的密码。

将证书导入JDK的证书信任库

分为两步:

  1. keytool -export -trustcacerts -alias myapp -file myapp.cer -keystore myapp.keystore -storepass changeit
    导出的证书文件myapp.cer
  2. keytool -import -trustcacerts -alias myapp -file myapp.cer -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit

查看当前机器的java证书库中的已有证书

keytool -list -v -keystore "C:\Program Files\Java\jre1.8.0_131\lib\security\cacerts"
  • -v 详细列出
    这里需要输入证书管理密码, 默认是 changeit

删除某个证书

keytool -delete -alias www.my.com -keystore "C:\Program Files\Java\jre1.8.0_131\lib\security\cacerts"  -storepass changeit

Java Keytool 命令行工具相关推荐

  1. java 编写命令行工具_编写命令行工具

    1.使用common-cli编写命令行工具 commons-cli是Apache开源组织提供的用于解析命令行参数的包. 先引用common-cli依赖包: commons-cli commons-cl ...

  2. 如何使用Java keytool命令行创建一个自签名证书

    执行文件keytool.exe是JRE自带的工具,在windows系统一般位于文件夹c:\Program Files\Java\jre6\bin下面. 运行如下的命令行: keytool -genke ...

  3. 深入理解Java虚拟机-如何利用 JDK 自带的命令行工具监控上百万的高并发的虚拟机性能...

    虚拟机系列文章 深入理解 Java 虚拟机(第一弹) - Java 内存区域透彻分析 深入理解 Java 虚拟机(第二弹) - 常用 vm 参数分析 深入理解 Java 虚拟机-如何利用 Visual ...

  4. Java虚拟机学习(8):查看JVM参数及值的命令行工具

    查看JVM各个参数值方式 1. HotSpot vm中的各个globals.hpp文件  查看jvm初始的默认值及参数 globals.hpp globals_extension.hpp c1_glo ...

  5. 深入理解Java虚拟机-如何利用 JDK 自带的命令行工具监控上百万的高并发的虚拟机性能

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:打卡活动第二期来啦,100% 能获得奖品个人原创+1博客:点击前往,查看更多 虚拟机系列文章 深入理解 Java ...

  6. java venus_来认识一下venus-init——一个让你仅需一个命令开始Java开发的命令行工具...

    前言 不知道你是否有过这样的经历.不管你是什么岗位,前端也好,后端也罢,想去了解一下Java开发到底是什么样的,它是不是真的跟传说中的一样. 于是你拿起键盘,用触控板 ? '' : 抄起鼠标',开始了 ...

  7. Java内存泄露和内存溢出、JVM命令行工具、.JDK可视化工具、Java Class文件

    1.Java内存泄露和内存溢出对比 1.1 Java 内存泄露 内存泄露是指一个不再被程序使用的对象或变量还在内存中占用空间. 1.1.1判断内存空间是否符合垃圾回收的标准 在Java语言中,判断一个 ...

  8. java命令行选项6_6.jdk命令行工具

    名称 主要功能 jps JVM Process Status Tool,显示指定系统内所有HotSpot虚拟机进程 jstat JVM Statistics Minitoring Tool,用于收集H ...

  9. apache pdfbox_Apache PDFBox命令行工具:无需Java编码

    apache pdfbox 在博客文章Apache PDFBox 2中 ,我演示了将Apache PDFBox 2用作从Java代码中调用的库来操作PDF. 事实证明,Apache PDFBox 2还 ...

最新文章

  1. Effective Java - Item 1: Consider static factory methods instead of constructors
  2. 学python可以做什么副业-写代码做副业月入10K的方法都藏在这几个公众号里!
  3. 《剑指offer》整数中1出现的次数(从1到n整数中1出现的次数)
  4. Fiddler + 夜神模拟器 APP接口调试
  5. 发明喂饭机器人_人类又懒出新高度,老美发明自动喂饭机器人,“君子”动嘴不动手...
  6. linux下新建一个脚本文件,linux下新建并启动脚本文件
  7. 初试Octave软件
  8. 别人家的地铁!长沙地铁全面进入5G时代 下载速率达1Gbps
  9. 基于Linux2.6下的按键驱动开发步骤
  10. 树结构的储存与特点(相关基础知识)
  11. linux文件移出目录命令_Linux移动文件命令F01
  12. 做微商如何快速加好友找到客源
  13. 【kafka源码】TopicCommand之alter源码解析(分区扩容)
  14. 微信朋友圈怎么设置对单人开放?
  15. 非对称加密RSA文本和Excel文件加密练习
  16. Python 之 pygame 学习(入门知识)
  17. HDFS加密存储(Ranger集成KMS方式)
  18. vue-element-admin 快捷标签导航(三)
  19. ffmpeg 合并视频 添加字幕 bat命令
  20. 布朗大学计算机专业怎么样,布朗大学计算机专业怎么样?过来人告诉你

热门文章

  1. 当relative遇上z-index,半透明度不阻断事件捕获
  2. asp 文件上传 代码
  3. android studio的 gradle 依赖同步错误解决方法
  4. ArchLinux(2013)中的网络配置和静态IP时DNS刷新的解决方法
  5. 无法生成临时类(result=1)的一种解决方法2
  6. Missing artifact XXXXX:jar:1.9.1 解决错误问题
  7. darknet集成遇到的问题以及解决方法
  8. 推荐系统有什么危害?
  9. c++ primer课后题答案 第9章 : 顺序容器
  10. 你看得懂的海明码校验和纠错原理