配置使用CAS的步骤,一定要记住。

 clip_p_w_picpath002

环境:tomcat5.5cas-server-3.1.1-release,客户端jar直接使用的是cas-server-3.1.1.war中的casclient2.11


1、使用keytool生成自己的key.

1)服务器中生成证书:keytool -genkey -alias tomcat -keystore c:\mykeystore
2) 导出证书,由客户端安装: keytool -export -alias tomcat -keystore c:\mykeystore -file c:\mycerts.cer
注:生成证书时,CN要和服务器的域名相同,如果在本地测试,则使用localhost。
3) 客户端配置:
将服务器下发的证书导入到JVM中
keytool -import -trustcacerts -alias tomcat -file c:\mycert.cer
-keystore %JAVA_HOME%/JRE/LIB/SECURITY/CACERTS

注意:要导入到jvm中,导入到%java_home%/jre/lib/security/cacerts文件中。如果报异常,可以有多种解决方法,本人在配置的时候总是在最后报IO错误,换文件名就ok,最后采取删除该文件:)暴力了点。呵呵。

2、使用tomcat的话,将生成的key文件 拷贝到tomcat的conf目录下。记得一定要打开SSL,在server.xml中去掉注释,加入keystorePass="我的密码" keystoreFile="conf/文件名称"。

3、将casxxxx.war 拷贝到tomcat的webapps目录下。

想将log日志级别改变的话,等其被tomcat展开后到其的WEB-INF/classes目录下修改log.properties文件(参考log4j的配置)

4、修改要试验需要增加验证的服务的web.xml文件。并把cas的客户端jar包拷贝进去,就是casclient-2.1.1.jar(cas/WEB-INF/lib目录下)拷贝到目标服务的WEB-INF/lib 目录下,没有的话就建一个。

我是使用jsp-examples,修改WEB-INF 中的web.xml文件在其filter的前面加入

<filter>
<filter-name>
CASFilter</filter-name>
<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
<init-param>

<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
<param-value>https://localhost:8443/cas/login</param-value>
</init-param>
<init-param>

<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://localhost:8443/cas/proxyValidate </param-value>
</init-param>
<init-param>

<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>
localhost:8080</param-value>
</init-param>

</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>
/*</url-pattern>
</filter-mapping>

5、启动tomcat看看效果了。在浏览器中输入http://localhost:8080/jsp-examples,

将会看到CAS的简单登录界面。输入完用户名密码(用户名要和密码相同),就进入原先的jsp-exmaples页面了。

问题:

异常:Unable to validate ProxyTicketValidator。

一般原因:1、证书使用的是域名,而在配置跳转的时候给的是IP.

2、导入到jvm中的证书导入失败或未导入到 cacerts中。本人开始就是这个原因。