java用keytool命令创建证书

证书(Certificate,也称public-key certificate)是用某种签名算法对某些内容(比如公钥)进行数字签名后得到的、可以用来当成信任关系中介的数字凭证。证书发行机构通过发行证书告知证书使用者或实体其公钥(public-key)以及其它一些辅助信息。证书在电子商务安全交易中有着广泛的应用,证书发行机构也称 CA(Certificate Authority)。


最近做项目用到证书,做个小结

是用RSA私钥加密,用证书解密,我觉得反过来也可以

之前用过RSA公钥加密,私钥解密,(或私钥加密,公钥解密)
参考:java RSA

感觉这两个很类似

证书一般包括证书信息和公钥,不包括私钥。 有的包括私钥。

可以用java命令:keytool 生成自签证书,其实生成证书很简单的


keytool 或 keytool -help 查看帮助

keytool参数:

-genkey      在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
(在没有指定生成位置的情况下,keystore会存在用户系统默认目录,如:对于window xp系统,会生成在系统的C:/Documents and Settings/UserName/文件名为“.keystore”)
-alias       产生别名
-keystore    指定密钥库的名称(产生的各类信息将不在.keystore文件中)
-keyalg      指定密钥的算法 (如 RSA  DSA(如果不指定默认采用DSA))
-validity    指定创建的证书有效期多少天
-keysize     指定密钥长度
-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 yushan.crt
-keypasswd   修改密钥库中指定条目口令    keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new  新密码  -storepass keystore密码  -keystore sage
-storepasswd 修改keystore口令      keytool -storepasswd -keystore e:/yushan.keystore(需修改口令的keystore) -storepass 123456(原始密码) -new yushan(新密码)
-import      将已签名数字证书导入密钥库  keytool -import -alias 指定导入条目的别名 -keystore 指定keystore -file 需导入的证书

下面是各选项的缺省值。
-alias "mykey"

-keyalg "DSA"

-keysize 1024

-validity 90

-keystore 用户宿主目录中名为 .keystore 的文件

-file 读时为标准输入,写时为标准输出

创建证书
逐个询问生成
keytool -genkey

指定一部分生成
keytool -genkey -alias cms -keyalg RSA -keysize 1024 -validity 4000

C:\Documents and Settings\zhao>keytool -genkey -alias cms -keyalg RSA -keysize 1024 -validity 4000
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
  [CMS]:  CMS
您的组织单位名称是什么?
  [gongsi]:  gongsi
您的组织名称是什么?
  [zuzhi]:  zuzhi
您所在的城市或区域名称是什么?
  [chengsi]:  chengshi
您所在的州或省份名称是什么?
  [sheng]:  sheng
该单位的两字母国家代码是什么
  [CN]:  CN
CN=CMS, OU=gongsi, O=zuzhi, L=chengshi, ST=sheng, C=CN 正确吗?
  [否]:  y

输入<cms>的主密码
        (如果和 keystore 密码相同,按回车):

查看证书

C:\Documents and Settings\zhao>keytool -list -rfc
输入keystore密码:

Keystore 类型: JKS
Keystore 提供者: SUN

您的 keystore 包含 1 输入

别名名称: cms
创建日期: 2014-10-14
项类型: PrivateKeyEntry
认证链长度: 1
认证 [1]:
-----BEGIN CERTIFICATE-----
MIICNTCCAZ6gAwIBAgIEVDy1sDANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJDTjEOMAwGA1UE
CBMFc2hlbmcxETAPBgNVBAcTCGNoZW5nc2hpMQ4wDAYDVQQKEwV6dXpoaTEPMA0GA1UECxMGZ29u
Z3NpMQwwCgYDVQQDEwNDTVMwHhcNMTQxMDE0MDUzMzM2WhcNMjUwOTI2MDUzMzM2WjBfMQswCQYD
VQQGEwJDTjEOMAwGA1UECBMFc2hlbmcxETAPBgNVBAcTCGNoZW5nc2hpMQ4wDAYDVQQKEwV6dXpo
aTEPMA0GA1UECxMGZ29uZ3NpMQwwCgYDVQQDEwNDTVMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
AoGBAJtM5mFea7QOJ8749zN8VzxzaRXht7lGkmR7KgcgAUl+hB6mrhVTDe5VQMgmDk7Npgue0w1d
ZJJUAQATSTqFC+D2+I8dcdVNe+622kXLkpDROcJUKprduAvKakNUWwGsx4mrfaJplP/JaqkhKzxH
T3Xb2OSlAdj9/+/wkIsIxg+VAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAEuPvcFDsPw9uBDoAh5sy
52zCdiBNegazwZIPhXwfW2bxKPQqCKosCTHux3GPdI5ShK2p3BAxthuF072jC3DFtubtg2vRwZt9
bO9m1GeCIUVrCIbRv5Y0fMkOKRkHM7t6mbEHAvL/146XReIs8XQsjA8sFFHz0hCkbHd/auK4hek=
-----END CERTIFICATE-----

导出证书
默认导出到用户主目录
导出二进制格式证书
keytool -export -alias cms -file cms.cer -storepass 123456
导出base64格式证书
keytool -export -alias cms -file cms.cer -storepass 123456 -rfc


二进制格式证书也可以"另存为"base64格式的证书
双击打开cms.cer 选择详细信息 点击复制到文件 ……



 

 

 

 

指定keystore的
keytool -genkey -alias cms -keyalg RSA -keysize 1024 -keystore C:\mykeystore -validity 4000
keytool -list -keystore C:\mykeystore -rfc
keytool -export -alias cms -file cms.cer -keystore C:/mykeystore  -storepass 123456 -rfc

java keystore导出证书,导出私钥,导出公钥

 http://happyqing.iteye.com/blog/2139504

参考:

java中Keytool的使用总结

java中Keytool的使用总结-GilBert1987-ChinaUnix博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值