耶鲁大学开发的单点登录系统称为CAS(Central Authentication Server)被设计成一个独立的Web应用程序(cas.war)。它目前用几个Java Servlet作为实现并且通过一个Https服务器来运行。要使用单点登陆功能的Web应用作为CAS的一个客户端来运行。
本文使用Weblogic(版本Weblogic8.1)配置CAS服务器,使用Tomcat(版本Tomcat5.0.30)配置CAS客户端,分别在7002端口及8080端口。下面是在Weblogic中使用Yale CAS实现单点登陆的详细步骤:
1. 安装CAS服务器
CAS服务器:http://www.yale.edu/tp/cas/cas-server-2.0.12.zip 或
https://clearinghouse.ja-sig.org/wiki/download/attachments/924/cas-server-2.0.12.zip
CAS客户端:http://www.yale.edu/tp/cas/cas-client-2.0.11.zip 或
https://clearinghouse.ja-sig.org/wiki/download/attachments/827/cas-client-2.0.11.zip
1.2. 将cas-server-2.0.12.zip解压,并将lib/cas.war拷贝到%bea%\user_projects\domains\mydomain\applications下,测试CAS服务器是否发布正常,可以访问http://localhost:7001/cas/login 出现登陆窗口。输入用户名密码(用户名=密码),出现登陆成功页面说明发布正常。若不能访问可以手工发布再试。
2. 配置Weblogic使用https协议
2.1. Server证书申请
a)keytool -genkey -keystore .\serverstore -keyalg RSA -keysize 512 -validity 3650 -alias server (生成默认秘锁库,密锁长度为512主要是因为weblogic对密锁强度有出口限制)
根据提示回答,注意在一开始问“你的名字”或“DName”的时候,必须填写你服务器所在域名;注意记住密锁库密码和私锁密码
b)keytool -certreq -keystore .\serverstore -alias server -file .\serverReq
2.1.2. 从CA机构获取server证书:
b)打开https://testca.netca.net/apply_srv/srv_root.asp网站,
保存后,点“继续“,进入证书申请界面,填写相关信息,并把步骤a 中复制的内容粘贴到最后一栏,特别提醒的是正确“请输入使用该证书的机器的域名”一栏,必须和生成CRS时填写的名字一样。之后,系统会生成你的server证书,并根据提示下载证书保存到本地,文件为:server
2.1.3. 导出p7b格式根证书链。
这样你就有了完整的证书链:root.cer , ca.cer , server.cer
一个密锁库文件:serverstore ,密锁库密码是:*******, 私锁是:**********(千万记好了,后面需要用到)
2.1.4. 导入证书链到密锁库serverstore
a)导入root证书
keytool -import -trustcacerts -keystore serverstore -alias root -file .\root.cer
a)导入ca证书
keytool -import -trustcacerts -keystore serverstore -alias ca -file .\ca.cer
a)导入server证书
keytool -import -keystore serverstore -alias server -file .\server.cer
2.1.5. 导入证书到Weblogic使用的JDK密锁库cacerts中
a)导入root证书
keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -alias root -file .\root.cer
a)导入ca证书
keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -alias ca -file .\ca.cer
a)导入server证书
keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -alias server -file .\server.cer
点chage,然后选custom identity and standard trust,进入keystore配置页:
<!--Element not supported - Type: 9 Name: #document-->
Custom identity key store file name:密锁库所在路径全名
Custom identity key store pass phrase:填写打开密锁库的密码(在步骤一中生成密锁库的密码,忘了吧?)
Java standar trust key store pass phrase: 填写打开密锁库的密码(同上)
Private key alias :填写server证书别名:server(请参考步骤一中第4步)
3. 配置 CAS客户端
3.1. 在Servlet examples应用里配置CAS客户端,需修改servlets-examples/WEB-INF/web.xml,在web.xml文件中,加入如下Filter配置:
3.2. 将cas-client-2.0.11.zip解压,把java/lib/casclient.jar拷贝到Tomcat的
webapps/servlets-examples/WEB-INF/lib目录下(如果没有就建一个)
3.3. 在客户端的JVM 里导入信任的SERVER的证书,输入keystore密码时,注意现在的keystore为cacerts,而cacerts的初密码为 changeit,而不是前面keystore-file的密码,所以要是没有改过cacerts密码应该输入changeit.
a)导入root证书
keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -alias root -file .\root.cer
a)导入ca证书
keytool -import -trustcacerts -keystore $JAVA_HOME/jre/lib/security/cacerts -alias ca -file .\ca.cer
a)导入server证书
keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -alias server -file .\server.cer
4. 测试SSO