Weblogic91下SSL的配置
前段时间公司因业务需要,需在WLS91 下使用CA认证,经过查询大量资料后,终于将其配置成功了,现将详细配置步骤贴出来,
希望对有此需求的同仁有所帮助.
步骤如下:
1. 成对的生成私钥(private key)和公钥(public certificate)<o:p></o:p>
在cmd 下进入jdk/bin目录下执行:<o:p></o:p>
keytool –genkey –alias mykey–keyalg RSA –keysize 1024 –dname “CN=<st1:chsdate isrocdate="False" w:st="on" year="1899" day="30" islunardate="False" month="12">10.8.2</st1:chsdate>.236, OU=soft, O=whty, L=<st1:place w:st="on"><st1:state w:st="on">hubei</st1:state></st1:place>, S=E, C=CN” –keypass 111111 –keystore ./mykey.jks –storepass 111111
此时产生的密钥对有效期为180天,如果要更改其有效期,可在上述命令中加入:
“-validity <st1:chmetcnv w:st="on" tcsc="0" unitname="”" sourcevalue="365" negative="False" numbertype="1" hasspace="False">365”</st1:chmetcnv>(一年)
<o:p> </o:p>
说明:alias是别名;keyalg指算法,keytool允许2种算法DSA和RSA,但这里WLS需要RSA;keysize的范围可以是512到1024,WLS licenses的可导出长度是512;dname指可区别的名字用于标识,必须按照一定的格式和顺序,其中(CN,域名或IP,不能有空格,OU:组织中部门的名字,O:组织名,L:城市名,S:省名,C:国家简写);keypass私钥的密码;keystore创建的文件的名字,以及地址(./放在当前目录);storepass是 keystore的密码
<o:p> </o:p>
2. 证书请求的生成,它用于到CA机构获得证书<o:p></o:p>
keytool –certreq –alias mykey –sigalg “MD5withRSA” –file ./certreq.pem –keypass 111111 –keystore ./mykey.jks –storepass 111111
<o:p> </o:p>
说明:sigalg是签名算法,对于RSA类型的私钥,需要的默认签名算法是MD5withRSA;file是提供CRS文件的位置和名字;keypass是私钥的密码;keystore是指定keystore文件;storepass是keystore的密码
<o:p> </o:p>
3. 登陆CA服务器,申请CA
将第二步生成的”certreq.pem”用记事本打开,用里面的内容到CA服务器上申请CA,申请成功后,将获得两个文件,“server.cer”,certnew.p7b。
4. 写CA 到token.(注:token为usb key).
5将“server.cer”,用记事本打开,另存为”serv.er.pem”,双击“certnew.p7b”,如下图:<o:p></o:p>
<v:shape id="_x0000_i1036" style="WIDTH: 415.5pt; HEIGHT: 193.5pt" type="#_x0000_t75"><v:imagedata o:title="get ca step5" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image017.jpg"></v:imagedata></v:shape>
两次双击右面区域文件夹,右键“IFCP Root CA”->所有任务->导出,保存为“rootca.cer”,
右键“IFCP Web Logon CA” ->所有任务->导出,保存为“subrootca.cer”
将所生成的“mykey.pem,rootca.cer,subrootca.cer”copy 到jdk/bin/下
6.导入到custom trust keystore,使用keytool的标记import,命令如下:<o:p></o:p>
keytool -import -alias rootca -trustcacerts -file ./rootca.cer -keystore ./mykeytrust.jks -storepass 111111<o:p></o:p>
遇到是否信任该证书提示时,输入y
keytool -import -alias subrootca -trustcacerts -file ./subrootca.cer -keystore ./ mykeytrust.jks -storepass 111111<o:p></o:p>
最后将从CA机构获得签名证书mykey.pem导入到custom identity keystore,命令如下:
keytool -import -alias server -file ./server.pem -keypass 111111 -keystore ./mykey.jks -storepass 111111<o:p></o:p>
此时共生成6个文件,它们分别是“mykey.jks, mykeytrust.jks, certreq.pem,mykey.pem,rootca.cer,subrootca.cer”,将它们copy 到weblogic安装目录下<o:p></o:p>
如: bea\weblogic91\samples\domains\wl_server<o:p></o:p>
7.配置weblogic ssl,将weblogic默认http端口7001禁用,启用SSL端口7002(将SSL Listen Port Enabled,勾选)<o:p></o:p>
8.进入keystores选项,如下图:<o:p></o:p>
<o:p> </o:p>
<v:shape id="_x0000_i1037" style="WIDTH: 414.75pt; HEIGHT: 259.5pt" type="#_x0000_t75"><v:imagedata o:title="get ca step6" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image019.jpg"></v:imagedata></v:shape><o:p></o:p>
将Keystores:选择为:Custom Identity and Command Line TrustCustom Identity and Custom TrustCustom Identity and Java Standard TrustDemo Identity and Demo Trust,
在Identity区域<o:p></o:p>
Custom Identity Keystore:输入bea/weblogic91/samples/domains/wl_server/mykey.jks<o:p></o:p>
Custom Identity Keystore Type:输入JKS<o:p></o:p>
Custom Identity Keystore Passphrase:输入密码前几步所设为111111<o:p></o:p>
在Trust区域<o:p></o:p>
Custom Trust Keystore: 输入bea/weblogic91/samples/domains/wl_server/ mykeytrust.jks<o:p></o:p>
Custom Trust Keystore Type:输入JKS<o:p></o:p>
Custom Trust Keystore Passphrase:输入密码前几步所设为111111<o:p></o:p>
然后点击“save”按钮,<o:p></o:p>
9.切换到“SSL”选项, 如下图:<o:p></o:p>
<v:shape id="_x0000_i1038" style="WIDTH: 414.75pt; HEIGHT: 259.5pt" type="#_x0000_t75"><v:imagedata o:title="get ca step7" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image021.jpg"></v:imagedata></v:shape><o:p></o:p>
在Identity and Trust Locations:选择KeystoresFiles or Keystore Providers (Deprecated),
Private Key Alias:输入mykey<o:p></o:p>
Private Key Passphrase: 输入密码前几步所设为111111<o:p></o:p>
然后点击“Advanced”,进入下一页面,如下图:<o:p></o:p>
<v:shape id="_x0000_i1039" style="WIDTH: 414.75pt; HEIGHT: 259.5pt" type="#_x0000_t75"><v:imagedata o:title="get ca step8" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image023.jpg"></v:imagedata></v:shape><o:p></o:p>
Two Way Client Cert Behavior:选择为Client Certs Not RequestedClient Certs Requested But Not EnforcedClient Certs Requested and Enforced,
然后点击“save”,至此webloigc sever keystores&SSL已经配置完毕,重启服务器
10.测试<o:p></o:p>
https://10.8.2.236:7002/csc/login_csc.jsp, 如果已经插入token,会提示选择CA ,而后会提示输入PIN,如果pin码正确,会进入login_csc.jsp
注:1.此配置在IE6 ,IE7上测试成功
(此后访问系统是要用https协议, 登录地址:https://10.8.2.236:7002/csc/login_csc.jsp)
2.如果改成token直接登录,不用进入login_csc.jsp,而是直接进入业务页面,可作如下更改
在登录的时候,直接读取token中的用户名,无需密码
在登记模块中,添加如下代码:
try{
<o:p> </o:p>
String certKey="javax.servlet.request.X509Certificate";
Object o = request.getAttribute(certKey);
java.security.cert.X509Certificate[] cert =null;
if( o instanceof java.security.cert.X509Certificate[] ){
cert = ( java.security.cert.X509Certificate[] )o;
}
Principal p1= cert[0].getSubjectDN();
String userId = p1.getName();//登录用户名<o:p></o:p>
}
注:因CA服务器不同,第4步有所变化.
E-mail:michael152630@gmail.com