首先需要准备资源如下:
cas-server-4.0.0-release.zip,cas-client-2.0.11.zip,apache-tomcat-6.0.29
下面操作在dos下操作(“开始 -> 运行",输入“cmd”),部署cas服务器端的ssl生成
1、生成服务端库文件(您的名字与姓氏是什么?这里需填写你的计算机名,我的计算机名是zk)
keytool -genkey -alias tomcat-server -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore
2、导出服务器端证书
keytool -export -alias tomcat-server -storepass changeit -file server.cer -keystore server.keystore
3、生成客户端文件
keytool -genkey -alias tomcat-client -keyalg RSA -keypass changeit
-storepass changeit -keystore client.keystore
4、导出客户端证书
keytool
-export -alias tomcat-client -storepass changeit -file client.cer -keystore client.keystore
5、导入服务器端证书
keytool
-import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit
6、导入客户端证书
keytool
-import -trustcacerts -alias client -file client.cer -keystore cacerts -storepass changeit
具体操作流程如下图:
7、将如上生成得cacerts, server.keystore
,client.keystore ,server.cer, client.cer5个文件(在C盘根目录)分别拷贝到cas所在服务器、应用服务器(子系统)和JAVA_HOME/jre/lib/security文件下(我的路径是:C:\Program Files\Java\jdk1.6.0_14\jre\lib\security)。(每个子系统的tomcat都要拷贝)
cas所在服务器拷贝文件后如下图:
8、解压下载的cas-server-4.0.0-release.zip包,在cas-server-4.0.0\modules文件加下找到cas-server-webapp-4.0.0.war包,把该包拷贝到tomcat服务器D:\apache-tomcat-6.0.29\webapps下,tomcat启动时会自动解压。进入该tomcat的D:\apache-tomcat-6.0.29\conf目录下找到server.xml,修改文件把一下内容添加到server.xml中
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" minSpareThreads="5" maxSpareThreads="75" enableLookups="true" disableUploadTimeout="true" acceptCount="100" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" clientAuth="false" sslProtocol="TLS" keystoreFile="D:/apache-tomcat-6.0.29/server.keystore" keystorePass="changeit"/>
具体的放置位置如下图:
9、启动tomcat服务器,在浏览器中运行https://zk:8443/cas/login,会出现如下页面证明cas服务端配置成功
在该页面输入用户名和密码:casuser/Mellon(cas老版本是用户名和密码相同就可以登录,但是新版本cas4.0必须输入前面用户名和密码),然后点击登录会到登录成功页面
输入路径:https://zk:8443/cas/logout成功退出
10、配置子系统的tomcat环境,需要把上面的生成的5个文件拷贝到tomcat中,然后配置web.xml,因为我测试是在自己同一台电脑上,所以我就用了同一个Tomcat。我们测试使用的tomcat自带的例子,启动服务器在浏览器中输入地址:http://localhost:8080/examples/servlets/servlet/HelloWorldExample,会见到下图:
然后我们开始配置D:\apache-tomcat-6.0.29\webapps\examples\WEB-INF路径下web.xml(如果你是在不同tomcat中测试就到子系统所在的tomcat对应路径下修改它的web.xml),在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://zk:8443/cas/login</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name> <param-value>https://zk:8443/cas/serviceValidate</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>CAS Filter</filter-name> <url-pattern>/servlets/servlet/HelloWorldExample</url-pattern> </filter-mapping>
解压cas-client-2.0.11.zip包,在cas-client-2.0.11\java\lib下找到casclient.jar,拷贝到D:\apache-tomcat-6.0.29\webapps\examples\WEB-INF\lib文件夹下(如果你是在不同tomcat中测试就拷贝到子系统所在的tomcat对应路径下)。
10、重新启动服务器,在浏览器中输入同第10步中的路径:http://localhost:8080/examples/servlets/servlet/HelloWorldExample,会看到如下图所示:
点击仍然继续看到如下图:
可以看到请求已被成功拦截到,然后输入用户名和密码:casuser/Mellon登录,会看到如下图:
成功登录!
可以看到上图浏览器地址栏中的路径与第10步浏览器中的路径明显不同,多了cas的安全证书。
到此文章已结束,一个简单的cas单点登录已完成,随着继续深入学习,会继续写cas学习笔记