锁定老帖子 主题:Tomcat部署Yale CAS实践
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-06-07
一、资源版本:<o:p></o:p> Tomcat<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">5.0.28</st1:chsdate><o:p></o:p> cas-server-<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">3.0.7</st1:chsdate><o:p></o:p> cas-client-<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">2.0.11</st1:chsdate><o:p></o:p> <o:p> </o:p> 二、Tomcat部署环境:<o:p></o:p> casserver——cas服务器部署环境<o:p></o:p> casclient——cas客户机部署环境(发布jsp-examples)<o:p></o:p> casclient1——cas客户机部署环境(发布servlets-examples)<o:p></o:p> <o:p> </o:p> 三、SSL文件准备:<o:p></o:p> server.keystore——服务器端库文件<o:p></o:p> client.keystore——客户端库文件<o:p></o:p> server.cer——服务器端证书(自制)<o:p></o:p> client.cer——客户端证书(自制)<o:p></o:p> cacerts——证书链<o:p></o:p> 1、生成服务器端库文件<o:p></o:p> keytool -genkey -alias tomcat-server -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore <o:p></o:p> 2、导出服务器端证书<o:p></o:p> keytool -export -alias tomcat-server -storepass changeit -file server.cer -keystore server.keystore <o:p></o:p> <o:p> </o:p> 3、生成客户端库文件<o:p></o:p> keytool -genkey -alias tomcat-client -keyalg RSA -keypass changeit -storepass changeit -keystore client.keystore <o:p></o:p> <o:p> </o:p> 4、导出客户端证书<o:p></o:p> keytool -export -alias tomcat-client -storepass changeit -file client.cer -keystore client.keystore <o:p></o:p> 5、导入服务器端证书到cacerts<o:p></o:p> keytool -import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit <o:p></o:p> <o:p> </o:p> 6、导入客户端证书到cacerts<o:p></o:p> keytool -import -trustcacerts -alias client -file client.cer -keystore cacerts -storepass changeit <o:p></o:p> 将server.keystore、client.keystore、erver.cer、client.cer、cacerts文件复制到cas服务器、cas客户机、cas客户机1的TOMCAT_HOME主目录及JAVA_HOEM\jre\lib\security目录下。<o:p></o:p> 四、Tomcat下cas安装部署<o:p></o:p> 1、casserver配置<o:p></o:p> 采用jakarta-tomcat-<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">5.0.28</st1:chsdate>.zip解压后默认配置,重点注意Server port="8005"<o:p></o:p> 及Connector port="8080" redirectPort="8443"(cas客户端需改端口号)。<o:p></o:p> A、 编辑.\casserver\conf目录下server.xml文件并保存。<o:p></o:p> 找到如下片段,红色字体为新增内容。<o:p></o:p> <!----><o:p></o:p> <connector port="8443"></connector> maxThreads="150" minSpareThreads="25" maxSpareThreads="75"<o:p></o:p> enableLookups="false" disableUploadTimeout="true"<o:p></o:p> acceptCount="100" debug="0" scheme="https" secure="true"<o:p></o:p> clientAuth="false" sslProtocol="TLS" <o:p></o:p> keystoreFile="/server.keystore" keystorePass="changeit"/><o:p></o:p> <o:p> </o:p> B、拷贝cas.war至.\casserver\webapps目录。<o:p></o:p> 至此,cas服务器部署完毕。启动服务器,访问https://localhost:8443如能显示Tomcat首页则表示cas部署成功。<o:p></o:p> <o:p> </o:p> 2、casclient配置<o:p></o:p> jakarta-tomcat-<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">5.0.28</st1:chsdate>.zip解压后修改根目录名为casclient。<o:p></o:p> A、编辑.\casclient\conf目录下server.xml文件并保存。<o:p></o:p> 找到如下片段,红色字体为修改内容。<o:p></o:p> <server port="&lt;span style="></server>8006" shutdown="SHUTDOWN" debug="0"><o:p></o:p> <connector port="&lt;span style="></connector>8081"<o:p></o:p> maxThreads="150" minSpareThreads="25" maxSpareThreads="75"<o:p></o:p> enableLookups="false" redirectPort="8080" acceptCount="100"<o:p></o:p> debug="0" connectionTimeout="20000" <o:p></o:p> disableUploadTimeout="true" /><o:p></o:p> B、编辑.\casclient\webapps\jsp-examples\WEB-INF目录下web.xml文件并保存。<o:p></o:p> 加入如下片段,重点注意红色字体部分。<o:p></o:p> <filter></filter> <o:p></o:p> <filter-name></filter-name>CASFilter <o:p></o:p> <filter-class></filter-class>edu.yale.its.tp.cas.client.filter.CASFilter <o:p></o:p> <init-param></init-param> <o:p></o:p> <param-name></param-name> edu.yale.its.tp.cas.client.filter.loginUrl <o:p></o:p> <param-value></param-value> https://localhost:8443/cas/login <o:p></o:p> <o:p></o:p> <init-param></init-param> <o:p></o:p> <param-name></param-name> edu.yale.its.tp.cas.client.filter.validateUrl <o:p></o:p> <param-value></param-value> https://localhost:8443/cas/proxyValidate <o:p></o:p> <o:p></o:p> <init-param></init-param> <o:p></o:p> <param-name></param-name> edu.yale.its.tp.cas.client.filter.serverName <o:p></o:p> <param-value></param-value> localhost:8081 <o:p></o:p> <o:p></o:p> <o:p></o:p> <filter-mapping></filter-mapping> <o:p></o:p> <filter-name></filter-name>CASFilter <o:p></o:p> <url-pattern></url-pattern>/* <o:p></o:p> <o:p></o:p> <o:p> </o:p> C、将casclient.jar拷贝至.\casclient\webapps\jsp-examples\WEB-INF\lib目录下。<o:p></o:p> 至此,cas客户端部署完毕。启动客户服务器,访问http://localhost:8081/jsp-examples正常情况会弹出安全警报,点击确认后转向cas登录页面。此时casserver采用默认验证,用户名、口令输入相同的字符串即可,验证通过后转向jsp-examples应用的默认页面。<o:p></o:p> <o:p> </o:p> 3、casclient1配置<o:p></o:p> jakarta-tomcat-<st1:chsdate w:st="on" isrocdate="False" year="1899" day="30" islunardate="False" month="12">5.0.28</st1:chsdate>.zip解压后修改根目录名为casclient1。<o:p></o:p> D、编辑.\casclient1\conf目录下server.xml文件并保存。<o:p></o:p> 找到如下片段,红色字体为修改内容。<o:p></o:p> <server port="&lt;span style="></server>8007" shutdown="SHUTDOWN" debug="0"><o:p></o:p> <connector port="&lt;span style="></connector>8082"<o:p></o:p> maxThreads="150" minSpareThreads="25" maxSpareThreads="75"<o:p></o:p> enableLookups="false" redirectPort="8080" acceptCount="100"<o:p></o:p> debug="0" connectionTimeout="20000" <o:p></o:p> disableUploadTimeout="true" /><o:p></o:p> E、编辑.\casclient1\webapps\servlets-examples\WEB-INF目录下web.xml文件并保存。<o:p></o:p> 加入如下片段,重点注意红色字体部分。<o:p></o:p> <filter></filter> <o:p></o:p> <filter-name></filter-name>CASFilter <o:p></o:p> <filter-class></filter-class>edu.yale.its.tp.cas.client.filter.CASFilter <o:p></o:p> <init-param></init-param> <o:p></o:p> <param-name></param-name> edu.yale.its.tp.cas.client.filter.loginUrl <o:p></o:p> <param-value></param-value> https://localhost:8443/cas/login <o:p></o:p> <o:p></o:p> <init-param></init-param> <o:p></o:p> <param-name></param-name> edu.yale.its.tp.cas.client.filter.validateUrl <o:p></o:p> <param-value></param-value> https://localhost:8443/cas/proxyValidate <o:p></o:p> <o:p></o:p> <init-param></init-param> <o:p></o:p> <param-name></param-name> edu.yale.its.tp.cas.client.filter.serverName <o:p></o:p> <param-value></param-value> localhost:8082 <o:p></o:p> <o:p></o:p> <o:p></o:p> <filter-mapping></filter-mapping> <o:p></o:p> <filter-name></filter-name>CASFilter <o:p></o:p> <url-pattern></url-pattern>/servlet/* <o:p></o:p> <o:p></o:p> <o:p> </o:p> 将casclient.jar拷贝至.\casclient1\webapps\servlets-examples\WEB-INF\lib目录下。至此,cas客户端1部署完毕。启动cas客户1服务器,访问http://localhost:8082/servlets-examples/servlet/HelloWorldExample正常情况会弹出安全警报,点击确认后转向servlets-examples应用的HelloWorld页面(此时由于cas客户服务器已经登录,因此访问servlets-examples时无需再进行登录)。<o:p></o:p> cas服务器、客户端部署完成后即可实现统一认证服务。案例中把登录认证部分的逻辑从jsp-examples、servlets-examples应用(此应用系统并无登录逻辑,在实际应用中需修改相应的登录验证逻辑)中剥离,交由cas认证服务器完成。<o:p></o:p> 以上配置在windows XP professional上测试通过。
<o:p></o:p> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-06-17
谁知道这种基于 CAS的单点登陆为什么需要证书呢? 不是验证一下用户名 密码就可以了么,和证书有什么关系?
|
|
返回顶楼 | |
发表时间:2007-06-17
配置客户端到服务端的双向ssl,保证安全传输
|
|
返回顶楼 | |
发表时间:2007-12-01
受教了。
为什么要将 redirectPort="8080“这样设定?在CAS中起什么作用,,网上查了一下,其本意是: redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号 为什么不是8433? 多谢! |
|
返回顶楼 | |
浏览 6728 次