鹰翔宇空

学习和生活

BlogJava 首页 新随笔 联系 聚合 管理
  110 Posts :: 141 Stories :: 315 Comments :: 1 Trackbacks

这两天,一直忙着搞SSL,其间遇到了不少小麻烦,为了总结自己的得失,同时也为了给后来者一些参考,就整理了一下。
其实主要的就是要创建一个密钥仓库以管理您的公钥
/ 私钥对来自您所信任实体的证书。
 
第一步:生成密钥对
您首先要做的是创建一个密钥仓库和生成密钥对。您可以使用以下命令:  
keytool -genkey -keyalg RSA -keysize 512 -dname "cn=hyq,o=eagle,c=cn" -alias weblogic -keypass 123456 -keystore C:/mykeystore/weblogic.jks -storepass 123456 -validity 365

(请注意:键入该命令时必须使其成为一行。此处用多行来显示,主要是为了可读性。)如下图:
Snap2.gif

该命令将在  C  盘的 “mykeystore” 目录中创建名为 “weblogic.jks” 的密钥仓库,并赋予它口令 123456 。它将为实体生成公钥 / 私钥对,该实体的 特征名 为:常用名 “hyq” 、组织 “eagle” 和两个字母的国家代码 “cn” 。“ -keyalg ”指定它使用的是那种密钥生成算法来创建密钥,缺省的是 “DSA” 密钥生成算法(会使用缺省的  DSA   SHA1” 签名算法),两个密钥(公钥与私钥)的长度是 512 位,由 -keysize 来指定,默认的是 1024  位。   该证书包括公钥和特征名信息。该证书的有效期为 365 天,由 -validity 来指定,且与别名 “business” 所代表的密钥仓库项关联。私钥被赋予口令 123456

 

命令行里 DName 信息注解

 

DN 信息域

含义

CN

域名或 IP

OU

部门,没有部门的可不要此项

O

单位名称

L

单位地址

S

省份的拼音(第一个字母大写)

C

国家的简写 ( CN 代表中国)


如果采用选项的缺省值,可以大大缩短该命令。实际上,这些选项并不是必需的;对于有缺省值的选项,未指定时将使用缺省值,对于任何被要求的值,您将会得到要求输入它的提示。例如:输入命令 keytool -genkey -keystore "C:/tone.jks" -storepass 123456 -keyalg RSA ,就会有如下提示:
Snap3.gif


注意:这里的
密钥仓库路径一定要存在,如果不存在的话,它就会抛如下的异常

Snap4.gif
第二步
: 产生证书请求certreq.pem 文件

使用如下命令:

keytool -certreq -alias weblogic -sigalg "MD5withRSA" -file C:/mykeystore/certreq.pem -keypass 123456 -keystore C:/mykeystore/weblogic.jks -storepass 123456

Snap5.gif
这样在
C:/mykeystore/ 目录下 就会产生一个 certreq.pem 文件,内容如下:

-----BEGIN NEW CERTIFICATE REQUEST-----

MIHlMIGQAgEAMCsxCzAJBgNVBAYTAmNuMQ4wDAYDVQQKEwVlYWdsZTEMMAoGA1UEAxMDaHlxMFww

DQYJKoZIhvcNAQEBBQADSwAwSAJBAMhaIG2Ki7+RwZUP4gPBdTbnY38bisW16u1XUyysPxdNwSie

aSd6E3Hm277E7NjHoz56ZoaYdPPDmdiTkMrS9rcCAwEAAaAAMA0GCSqGSIb3DQEBBAUAA0EAYRNl

l5dyGgV9hhu++ypcJNQTrDIwjx1QT4fgVubrtIaHU0fzHamD5QG6PYddw9TL51XQHvu6tOS0NUc/

ItNKJw==

-----END NEW CERTIFICATE REQUEST-----

第三步:这就相对来说简单多了,就是CA提交证书请求。
    你可以随便从网上找一家免费的CA认证适用机构(很多的),然后按照上面的提示进行操作就可以了,这一步就要用到前面生成的certreq.pem 文件了。(注意:一定要下载根证书)
    将生成的证书和下载的根证书放至你比较容易找到的位置,我一般将它们和生成的jks文件放到一起。

第四步:导入证书
    通过命令:keytool -import -alias RootCA -trustcacerts -file C:/mykeystore/RootCADemo.cer -keystore C:/mykeystore/weblogic.jks -storepass 123456将根证书导入第一步生成的weblogic.jks中,接着将所有其它的证书按照此命令全部导入。(注意证书的别名不能重复,同时一定注意要用上 -trustcacerts,否则,你在以后使用时,它将会认为你导入的这些证书是不可信任的 ,就会导致你在配置SSL时不能正常的工作。)
    这就全部完成了密钥仓库的创建。然后就可以在支持这些证书格式的服务器上使用了。下一篇将会写一下在weblogic上如何配置双向SSL。

posted on 2006-03-20 09:47 TrampEagle 阅读(4843) 评论(5)  编辑  收藏 所属分类: 学习体会

Feedback

# re: 如何使用keytool创建密钥仓库 2006-03-20 10:26 david.turing
呵呵,可以参考一下我写的文章《weblogic security in Action》中篇

http://dev2dev.bea.com.cn/bbs/servlet/D2DServlet/download/81-26770-178629-2291/Weblogic%20Security%20In%20Action(2).swf  回复  更多评论
  

# re: 如何使用keytool创建密钥仓库 2006-03-20 10:38 TrampEagle
@david.turing
谢谢,呵呵呵,很好的文章!
可惜没有早点看到你的文章啊,不过自己总结一下也好,对自己也是一种提升吧。  回复  更多评论
  

# re: 如何使用keytool创建密钥仓库 2006-03-20 22:08 david.turing
hehe, u r welcome
we hope u join our qq group[securitysite]:14966586  回复  更多评论
  

# re: 如何使用keytool创建密钥仓库 2006-03-21 08:26 TrampEagle
@david.turing
谢谢david.turing!我已经加入了,只是用的另一个qq号,我就是312,呵呵!再次向你致谢!  回复  更多评论
  

# re: 如何使用keytool创建密钥仓库 2008-04-11 09:46 将军
非常感谢。。楼主  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问