一、生成证书工具keytool

Java自带的工具keytool可以用来生成密钥证书,也可以查看或删除证书库里的证书。无论是windows还是Linux系统,这个工具都会出现在jdk安装目录的bin文件夹下。

keytool工具是基于“证书库”来对密钥进行管理的。“证书库”是一个后缀名为“.keystore”的文件

在密钥库中,每一条记录就是一份独立的证书,如果使用RSA算法,那这份证书里就会包含有私钥和公钥

keytool工具有很多命令,无论是在windows还是在linux中,你都可以在命令行中输入“keytool”来查看这个工具的用法概述:

二、生成证书

keytool -genkey -alias 你的证书别名 -keyalg 密钥算法 -keystore 证书库文件保存的位置和文件名 -keysize 密钥长度 -validity 证书有效期天数

2.1 解释一下几个参数的含义
   -genkey:创建证书
   -alias:证书的别名。在一个证书库文件中,别名是唯一用来区分多个证书的标识符
   -keyalg:密钥的算法,非对称加密的话就是RSA
   -keystore:证书库文件保存的位置和文件名。如果路径写错的话,会出现报错信息。如果在路径下,证书库文件不存在,那么就会创建一个
   -keysize:密钥长度,一般都是1024
   -validity:证书的有效期,单位是天。比如36500的话,就是100年
所以完整的一条创建命令可能是这样的:

keytool -genkey -alias xiaoyaodijun.keystore -keyalg RSA -keystore  xiaoyaodijun.keystore  -keysize  -validity 

然后,keytool会要求你输入证书库的密码,而且是连续输入两遍。注意 这是“证书库”的密码,而不是你所要生成的证书的密码,这是两个不同的密码

之后,keytool会要求你输入自己的姓名、所在单位/公司/组织的名称、所在城市的名称、所在地区的名称、和2位的国家编码,照着它的引导步骤做就可以了。如果所有信息都2.2 输入正确的话,记得在最后输入y,并回车
 

最后,keytool会要求你输入证书的密码,也是连续输入两遍

2.3 查看证书

可以使用以下命令来查看一份已存在的证书库中的所有证书

keytool -list -keystore  xiaoyaodijun.keystore

三、到处证书文件

keytool -export -alias xiaoyaodijun.keystore -keystore xiaoyaodijun.keystore -file mypublickey.cer
解释一下:
-export:用于导出公钥文件的命令参数
-alias:你的证书在证书库中的别名,也是唯一标识
-keystore:完整的证书库文件所在的目录及文件名
-file:导出后的公钥文件所在的完整目录及文件名

JAVA操作证书的更多相关文章

  1. Java操作Sqlite数据库-jdbc连接

    Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...

  2. 【MongoDB for Java】Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...

  3. java keytool证书工具使用小结

    java keytool证书工具使用小结 在Security编程中,有几种典型的密码交换信息文件格式: DER-encoded certificate: .cer, .crt    PEM-encod ...

  4. Java操作Oracle

    public class DBCon { // 数据库驱动对象 public static final String DRIVER = "oracle.jdbc.driver.OracleD ...

  5. JAVA操作ORACLE数据库的存储过程

    一.任务提出 JAVA操作oracle11g存储过程实验需要完成以下几个实例: 1.调用没有返回参数的过程(插入记录.更新记录) 2.有返回参数的过程 3.返回列表的过程 4.返回带分页的列表的过程. ...

  6. JAVA操作MongoDB数据库

    1. 首先,下载MongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads 2.Java操作Mo ...

  7. Java操作Session与Cookie

    1,Java操作Session Java操作Session非常简单,步骤如下 1.1,在servlet中通过request获取session HttpSession session = request ...

  8. JAVA操作COOKIE

    JAVA操作COOKIE 1.设置Cookie Cookie cookie = new Cookie("key", "value"); cookie.setMa ...

  9. [转]MongoDB for Java】Java操作MongoDB

    原文地址: MongoDB for Java]Java操作MongoDB 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开 ...

随机推荐

  1. 【集训队作业2018】取名字太难了 任意模数FFT

    题目大意 求多项式 \(\prod_{i=1}^n(x+i)\) 的系数在模 \(p\) 意义下的分布,对 \(998244353\) 取模. \(p\) 为质数. \(n\leq {10}^{18} ...

  2. [WC2006]水管局长(LCT)

    题目大意: 给定一张图,支持删边,求两点的路径中所有权值的最大值的最小值,貌似很绕的样子 由于有删边,不难想到\(LCT\),又因为\(LCT\)不支持维护图,而且只有删边操作,于是我们考虑时间回溯. ...

  3. 纠错式教学法对比鼓励式教学法 -----Lily、贝乐、英孚,乐加乐、剑桥国际、优学汇、北外青少

    一.关于两种英语教学法的争议 在英语教学方面,主要有纠错式教学法(目前主要对应国内听说读写四位一体的教学法)和鼓励式教学法(目前对应国内听说为主的教学法),这两种教学方法其实是各有千秋,各有利弊的. ...

  4. min-max容斥

    这玩意儿一般都是跟概率期望结合的吧,就是下面这个式子(\(max(S)\)代表集合\(S\)中的最大值,\(min(S)\)同理): \[max(S)=\sum\limits_{T\subseteq ...

  5. Java基础 -- 深入理解迭代器

    在Java基础 -- 持有对象(容器)已经详细介绍到,集合(Collection)的种类有很多种,比如ArrayList.LinkedList.HashSet.... 由于集合的内部结构不同,很多时候 ...

  6. thinkphp5 去除缓存

    array_map('unlink', glob(TEMP_PATH . '/*.php')); rmdir(TEMP_PATH);

  7. (十) 编写UVC程序

    目录 编写UVC程序 流程简述 11个ioctl函数 查询属性 VIDIOC_QUERYCAP 枚举格式 VIDIOC_ENUM_FMT 查询当前格式 VIDIOC_G_FMT 尝试某种格式 VIDI ...

  8. Airflow 重跑dag中部分失败的任务

    重跑dag中部分失败的任务 例如 dagA 中, T1 >> T2 >> T3 >> T4 >> T5  ,其中 T1 T2 成功, T3 失败, T4 ...

  9. [面试]future模式

    Future模式 什么是future模式? 传统单线程环境下,调用函数是同步的,必须等待程序返回结果后,才可进行其他处理. Futrue模式下,调用方式改为异步. Futrue模式的核心在于:充分利用 ...

  10. 3、设置jsp上的类容自动更新

    1.run->edit configurations进入下面的界面,并修改 On ‘Update’ action  为  Redeploy. On frame deactivation  为   ...