二、 Java中的数字证书的生成及维护方法
Java中的keytool.exe可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中,证书库中的一条证书包含该条证书的私钥,公钥和对应的数字证书的信息。证书库中的一条证书可以导出数字证书文件,数字证书文件只包括主体信息和对应的公钥。
每一个证书库是一个文件组成,它有访问密码,在首次创建时,它会自动生成证书库,并要求指定访问证书库的密码。
在创建证书的的时候,需要填写证书的一些信息和证书对应的私钥密码。这些信息包括 CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx,它们的意思是:
CN(Common Name名字与姓氏)
OU(Organization Unit组织单位名称)
O(Organization组织名称)
L(Locality城市或区域名称)
ST(State州或省份名称)
C(Country国家名称)
可以采用交互式让工具提示输入以上信息,也可以采用参数
-dname "CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx"来自动创建。
1、示例
如下所示一句采用交互式创建一个证书,指定证书库为 abnerCALib,创建别名为abnerCA的一条证书,它指定用RSA算法生成,
且指定密钥长度为 1024,证书有效期为3650天:
C:\j2sdk1.4.1_01\mykeystore>keytool -genkey -alias abnerCA -keyalg RSA -keysize 1024 -keystore abnerCALib -validity 3650 |
如下图所示:
上图中最后一步,我们输入的是 CN,代表中国的缩写,也可以直接输入“中国”两个字。
2、证书的操作方法
● 证书的显示
如:
keytool –list –keystore abnerCALib |
将显示 abnerCALib证书库的的所有证书列表:如下图示:
又如: keytool -list -alias abnerCA -keystore abnerCALib
将显示 abnerCALib证书库中别名为abnerCA的证书的信息。如下图所示:
又如: keytool -list -v -alias abnerCA -keystore abnerCALib
将显示证书的详细信息( -v参数)如下图所示:
● 将证书导出到证书文件
如: keytool -export -alias abnerCA -file abnerCA.cer -keystore abnerCALib
将把证书库 abnerCALib中的别名为abnerCA的证书导出到abnerCA.cer证书文件中,
它包含证书主体的信息及证书的公钥,不包括私钥,可以公开,如下图所示 :
上面导出的证书文件是以二进制编码文件,无法用文本编辑器正确显示,因此不利用公布证书,可以加上 -rfc参数以一种可打印的编者编码输出。
如:
keytool -export -alias abnerCA -file abnerCA.cer -keystore abnerCALib -storepass 100200 –rfc |
这个命令在命令行中指定了证书库的访问密码,同时指定以可查看编码的方式输出。
3、通过证书文件查看证书的信息
通过命令 :keytool –printcert –file abnerCA.cer可以查看证书文件的信息。
也可以在 windows中双击产生的证书文件直接查看。
● 证书条目的删除
keytool的命令行参数-delete可以删除密钥库中的条目,如:
keytool -delete -alias abnerCA -keystore abnerCALib |
这条命令将 abnerCALib库中的abnerCA这一条证书删除了。
● 证书条目口令的修改
如:
keytool –keypasswd –alias abnerCA –keystore abnerCALib |
可以以交互的方式修改 abnerCALib证书库中的条目为abnerCA的证书。
Keytool –keypasswd –alias abnerCA –keypass 123456 –new 200100 –storepass 1002 00 –keystore abnerCALib |
这一行命令以非交互式的方式修改库中别名为 abnerCA的证书的密码为新密码123456,行中的200100是指该条证书的原密码, 1002 00是指证书库的密码。
1
分享到:
相关推荐
java安全通信数字证书
Java 安全通信、 数字证书及应用实践
实现java代码生成cer证书文件,然后可以通过代码获取 不通过keytool工具。生成密钥对。使用公钥加密。
使用TOMCAT和JDK搭建SSL服务, JAVA获取数字证书项, 如何用OPENSSL签发证书, 支持第三方CA
本文主要介绍java建立SSL安全通信以及数字证书的制作与使用
数据包监控和安全通信数字证书
java 实现的数字对数字证书的管理的客户端,包含功能:数字证书的创建(初始化),内容查看,pin码修改,导入与导出,数字证书的删除,服务器端简单验证不同持有不同数字证书的用户的不同权限
学习RSA算法,读取数字证书中的私钥对文件进行加密,使用数字证书的公钥解密,这种方式就是RSA算法.
Java开发的数字证书、数字签名模块源码。
java通信安全主要包括:md5 密码加密与验证 对称加密与解密 非对称加密以解密 基于MD5信息摘要算法实现密码加密与验证 凯撒加密算法 数字签名与验证 消息验证码 消息摘要 所有程序都经过了测试
java 生成 数字证书
证书解析函数、随机数函数、签名验证函数、加解密函数、时间戳函数以及数据服务函数u通过以上 函数的定义,可以提供完菩的证书应用服务功能,有利于提升电子政务业务系统的安全等级,促进数字证书在各系统间的兼容性...
自己努力写的一个java数字证书的源码,实现了自签名证书和颁发新的数字证书功能
java rsa证书加密,crt、pem、pfx、cer等 内附工具
Java中的数字证书的生成及维护方法,非常适合初学者参考.
Java平台及应用Java技术的安全问题研究,关于这方面的可以一看
在WEB应用中使用基于数字证书的登录验证
java 国密算法实现,包含SM2 SM3 SM4和数字签名、数字证书的验证以及相应的说明文档
《分布式Java应用基础与实践》pdf电子版,