Posted on 2008-07-02 11:19
Kevin Meng 阅读(309)
评论(0) 编辑 收藏
(1)配置tomcat支持SSL,请参考我的文章:http://www.blogjava.net/menglikun/archive/2008/07/02/212065.html
(2)把证书导到jre,运行cmd
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>d:
D:\>cd d:\tomcat5.0
D:\Tomcat5.0>keytool -export -file myserver.cert -alias cas -keystore server.key
store
输入keystore密码:
保存在文件中的认证 <myserver.cert>
D:\Tomcat5.0>
执行到这里,您应该可以在d:\tomcat5.0目录中找到一个文件myserver.cert
接着,我们要把这个证书文件导到客户端的JVM中,因为现在我们的客户端和服务器端都是同一台机器,所以直接进入cmd,执行以下命令就可以了
D:\Tomcat5.0>keytool -import -keystore c:/jdk1.6/jre/lib/security/cacerts -file
myserver.cert -alias cas
输入keystore密码: //注意,这里是默认密码changeit
所有者:CN=localhost, OU=szghj, O=szghj, L=suzhou, ST=jiangsu, C=cn
签发人:CN=localhost, OU=szghj, O=szghj, L=suzhou, ST=jiangsu, C=cn
序列号:486ae46a
有效期: Wed Jul 02 10:14:02 CST 2008 至Tue Sep 30 10:14:02 CST 2008
证书指纹:
MD5:AC:A9:C2:47:36:DF:D0:C1:76:F3:6D:14:70:73:90:5C
SHA1:3C:2E:45:92:29:98:ED:7E:93:34:BB:11:2D:EE:ED:E3:E4:4D:E3:85
签名算法名称:SHA1withRSA
版本: 3
信任这个认证? [否]: y
认证已添加至keystore中
(3)配置CAS服务器
我用户的是3.2.1版本,直接把cas-server-webapp-3.2.1.war复制到tomcat的webapp目录,改名为userservice-cas就可以了
(4)配置客户端,我用的是cas-client-java-2.1.0,把casclient.jar复制到客户端的lib目录,然后打开web.xml,添加如下的过滤器就可以了。
<filter>
<filter-name>CAS Filter</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/userservice-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/userservice-cas/serviceValidate
</param-value>
</init-param>
<init-param>
<param-name>
edu.yale.its.tp.cas.client.filter.serverName
</param-name>
<param-value>
localhost:4000
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>/jsp/user/*</url-pattern>
</filter-mapping>
其他:
(1)成功登录后,出现错误 Unable to validate ProxyTicketValidator 是什么原因。
这是因为数字证书的签名不一致造成的,例如生成证书的时候用localhost,但是访问的时候却用机器名。统一一下就可以了