博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 开发银行支付、对账时证书相关的操作总结
阅读量:5974 次
发布时间:2019-06-19

本文共 3298 字,大约阅读时间需要 10 分钟。

hot3.png

证书的相关操作主要是在CMD窗口使用keytool工具

Keytool 是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:密钥实体(Key entity)-密钥(secret key)或者是私钥和配对公钥(采用非对称加密)可信任的证书实体(trusted certificate entries)-只包含公钥.

JDK中keytool常用参数说明(不同版本有差异,详细可参见【附录】中的官方文档链接):

  • -genkey 在用户主目录中创建一个默认文件”.keystore”,还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书(在没有指定生成位置的情况下,keystore会存在用户系统默认目录)
  • -alias 产生别名 每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写
  • -keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中)
  • -keyalg 指定密钥的算法 (如 RSA DSA,默认值为:DSA)
  • -validity 指定创建的证书有效期多少天(默认 90)
  • -keysize 指定密钥长度 (默认 1024)
  • -storepass 指定密钥库的密码(获取keystore信息所需的密码)
  • -keypass 指定别名条目的密码(私钥的密码)
  • -dname 指定证书发行者信息 其中: “CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名 称,ST=州或省份名称,C=单位的两字母国家代码”
  • -list 显示密钥库中的证书信息 keytool -list -v -keystore 指定keystore -storepass 密码
  • -v 显示密钥库中的证书详细信息
  • -export 将别名指定的证书导出到文件 keytool -export -alias 需要导出的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称 -storepass 密码
  • -file 参数指定导出到文件的文件名
  • -delete 删除密钥库中某条目 keytool -delete -alias 指定需删除的别 -keystore 指定keystore – storepass 密码
  • -printcert 查看导出的证书信息 keytool -printcert -file g:\sso\michael.crt
  • -keypasswd 修改密钥库中指定条目口令 keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new 新密码 -storepass keystore密码 -keystore sage
  • -storepasswd 修改keystore口令 keytool -storepasswd -keystore g:\sso\michael.keystore(需修改口令的keystore) -storepass pwdold(原始密码) -new pwdnew(新密码)
  • -import 将已签名数字证书导入密钥库 keytool -import -alias 指定导入条目的别名 -keystore 指定keystore -file 需导入的证书

内容概览:

keytool的几个常用的命令。

1.创建证书

2.查看证书库

3.导出证书文件

4.导入证书的信息

5.查看证书信息

6.删除密钥库中的条目

7.修改证书条目的口令

1.创建证书

keytool -genkeypair -alias "test1" -keyalg "RSA" -keystore "test.keystore"

说明:

密钥库密码为testtest

证书条目密码为testtest1,若别名为test2则密码为testtest2

这样为个不乱

功能:

创建一个别名为test1的证书条目,该条目存放在名为test.keystore的密钥库中,若test.keystore密钥库不存在则创建。

参数说明:

-genkeypair:生成一对非对称密钥;

-alias:指定密钥对的别名,该别名是公开的;

-keyalg:指定加密算法,本例中的采用通用的RAS加密算法;

-keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".keystore"的文件

注意:

1.“名字与姓氏”应该是域名,若输成了姓名,和真正运行的时候域名不符,会出问题;

2.再次输入密码,第一次输入的是密钥库(keystore)的密码,第二次输入的是证书条目的密码

3.这里所说的证书库和密钥库是等同的(个人观点)

为了测试需要,这里再创建两个别名为test2和test3的证书条目在test.keystore密钥库中,代码如下:

keytool -genkeypair -alias "test2" -keyalg "RSA" -keystore "test.keystore"keytool -genkeypair -alias "test3" -keyalg "RSA" -keystore "test.keystore"
2.查看证书库:

keytool -list -keystore cacerts -storepass changeit
查看名为test.keystore的证书库中的证书条目

3.导出到证书文件

keytool -export -alias test1 -file test.crt -keystore cacerts

功能:

将名为test.keystore的证书库中别名为test1的证书条目导出到证书文件test.crt中

4.导入证书的信息:

keytool -import -keystore C:\bea\jdk142_08\jre\lib\security\cacerts -storepass changeit -keypass changeit -alias bocommca -file root.cer
keytool -import -keystore cacerts -storepass changeit -keypass changeit -alias bocommca -file root.cer
上面一句是指定证书的路径,下一句是要先到目录下面

5.查看证书信息

keytool -printcert -file "test.crt"

功能:

查看证书文件test.crt的信息

6.删除密钥库中的条目
删除前查看密钥库test.keysote中的证书条目
keytool -list -keystore test.keystore
删除密钥库test.keystore中别名为test2的证书条目
keytool -delete -keystore test.keystore -alias test2
删除后查看密钥库test.keystore中的证书条目

7.修改证书条目的口令

交互的方式

keytool -keypasswd -alias test1 -keystore test.keystore

功能:

将密钥库test.keystore中别名为test1的证书条目的密码修改为testtesttest1

非交互方式

keytool -keypasswd -alias test1 -keypass testtesttest1 -new testtest1 -storepass testtest -keystore test.keystore

功能:

将密钥库test.keystore中别名为test1的证书条目的密码修改为testtest1

转载于:https://my.oschina.net/u/3647620/blog/1552566

你可能感兴趣的文章
mysql主主复制(双主复制)配置步骤
查看>>
一篇文章能够看懂基础源代码之JAVA篇
查看>>
什么是大数据技术架构
查看>>
【分享】如何救援記憶卡中誤刪的資料
查看>>
北方计算机专修学院“展示自我 秀出风采” 网页创意设计大赛成功举办
查看>>
DNS解析相关实验:7台主机的恩怨情仇
查看>>
Goldengate双向复制配置
查看>>
Oracle官方内部MAA教程
查看>>
DNS相关配置
查看>>
Nginx-location配置
查看>>
扫描线
查看>>
设计模式--模板方法(Template Method)
查看>>
引入CSS的方式有哪些?link和@import的有何区别应如何选择【转载】
查看>>
MariaDB 和 MySQL 性能测试比较
查看>>
Restful Web Service初识
查看>>
This用法和闭包
查看>>
JSP页面获取系统时间
查看>>
L-1-19 Linux之RAID&分区&文件系统命令
查看>>
stat查找权限以数字形式显示
查看>>
Java面向对象学习笔记(二)
查看>>