Java安全通信、数字证书及应用实践


二、 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是指证书库的密码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值