這兩天,一直忙著搞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
(請注意:鍵入該命令時必須使其成為一行。此處用多行來顯示,主要是為了可讀性。)如下圖:

該命令將在
?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
,就會有如下提示:

注意:這里的
密鑰倉庫路徑一定要存在,如果不存在的話,它就會拋如下的異常
第二步
:
產生證書請求certreq.pem 文件
使用如下命令:
keytool -certreq -alias weblogic -sigalg "MD5withRSA" -file C:/mykeystore/certreq.pem -keypass 123456 -keystore C:/mykeystore/weblogic.jks -storepass 123456
這樣在
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。