posts - 37,  comments - 53,  trackbacks - 0
今天花了一个下午的时间,终于完成的cas配置的一次完整的运行。cas前世今生我就不介绍了,有兴趣的朋友谷歌或是百度一下就可以有很详细的了解了,重点记录一下今天的配置过程和遇到的问题及解决方法。
环境:浏览器(ie6.0,windows xp)
    cas server 在一台Linux服务器,cas client在另外一台linux服务器
    应用服务器为tomcat5.5.26
初步的配置实用过程参考了http://www.blogjava.net/yida/archive/2007/04/03/55466.html的描述,各位亦可以访问阿木的blog。整理如下:
1.请下载到cas的官方网站下载cas-server(我用的是3.2)和cas-client(2.0.11),tomcat5.5.26
    cas的官方网站:http://www.ja-sig.org/products/cas/
2.安装cas-server,我们假定安装cas-server的服务器为server1
    (1)请在server1服务器上安装好jdk1.5或以上版本的jdk,tomcat5.5.26,并配置环境变量JAVA_HOME
    (2)将cas-server-3.2-release.zip解压,将moudels目录下cas-server-webapp-3.2.war拷贝到tomcat的webapps目录下,修        改名称为cas.war.
    (3)生成server1的安全证书:
      
keytool -genkey -alias my-alias-name -keyalg RSA -keystore keystore-file
       (4)在server1
配置https
             在
$CATALINA_HOME/conf/server.xml里修改为一下配置
              <Connector port="8443" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="/path/keystore-file" keystorePass="your-password"
              />
          (5)导出server1的证书,
用来给所有需要用到的客户端导入
               
keytool -export -file myserver.cert -alias my-alias-name -keystore keystore-file
         
(6)将导出的证书上传的client1服务器上。
          (7)启动server1上的tomcat,检验cas配置是否成功,访问http://ip:8443/cas/login,如果能看到cas的登录页面则表示配                置成功。
3.配置 cas-client,我们以tomcat下自带的servlet-example为例子进行说明
    (1)
请在client1服务器上安装好jdk1.5或以上版本的jdk,tomcat5.5.26,并配置环境变量JAVA_HOME
  (2)
将cas-client-2.0.11.zip解压,把java/lib/casclient.jar拷贝到client1服务器上的
            webapps/servlets-examples/WEB-INF/lib目录下(如果没有就建一个)

  (3)在要使用CAS的客户端client1里设置(以servlets-examples这个APP为例),我们使用ServletFilter(CAS client里提供            的)来实现SSO的检查,修改servlets-examples/WEB-INF/web.xml,添加以下内容:
          <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://your.cas.server.name(eg:server1):port/cas/login</param-value>
                </init-param>
                <init-param>
                    <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
                    <param-value>https://your.cas.server.name(eg:server1):port/cas/proxyValidate</param-value>
                </init-param>
                <init-param>
                    <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
                    <param-value>your.client.server.name(eg:client1):port</param-value>
                </init-param>
            </filter>
            <filter-mapping>
                <filter-name>CASFilter</filter-name>
                    <url-pattern>/servlet/*</url-pattern>
            </filter-mapping>
       (4)
在客户端的JVM里导入信任的SERVER的证书(根据情况有可能需要管理员权限)
            
keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file myserver.cert -alias my-alias-name
             此时需要输入密码,默认密码为changeit
通过以上配置,基本完成cas-server和cas-client的配置,但是还有以下问题需要注意和解决
由于cas的证书需要域名才能正确的进行认证信息的交互,不支持ip,如果server和client在同一台机器上,可以使用localhost,如果像我们上面描述的三台服务器这样的环境,使用localhost或者ip是不能正常运行的。如果使用ip,运行时会抛出
HTTPS hostname wrong 的错误,解决的方法如下:
假设server1的ip为:192.168.10.1,client1的ip为192.168.10.2,开发机器(xp)的ip为:192.168.10.3
在server1和client1上设置本机的域名映射:
vi /etc/hosts 添加以下行
192.168.10.1 cas.server
在开发机器(xp)下,在C:\WINDOWS\system32\drivers\etc目录下,编辑hosts文件,添加以下行
192.168.10.1 cas.server

重新生成cas-sever的服务器端的证书,在开始问“你的名字”或“DName”的时候,必须填写你服务器所在域名(cas.server)
然后重新到处服务器器端的证书,并将其导入到client1服务器的jvm

最后修改
修改servlets-examples/WEB-INF/web.xml中关于cas过滤器的配置:请将your.cas.server.name(eg:server1)修改为cas.server即可。重新启动server1和client1的服务器上的tomcat就可正常运行。


ttp://client1:8080/servlets-examples/servlet/HelloWorldExample
系统会自动跳转到一个验证页面,随便输入一个相同的账号,密码,严正通过之后就会访问
到真正的HelloWorldExample这个servlet了


posted on 2008-03-25 18:05 雪地孤鸿 阅读(4721) 评论(0)  编辑  收藏 所属分类: sso

只有注册用户登录后才能发表评论。


网站导航:
 
<2008年3月>
2425262728291
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿(17)

随笔分类

随笔档案

文章档案

blog

搜索

  •  

最新评论

阅读排行榜

评论排行榜