实验背景:
系统环境: Windows XP | SUN JDK1.6U4 | Tomcat6.0.14 | CAS Server 3.1.1 + CAS Client 2.1.1
主机完整名称: victor-pc
浏览器: FireFox V2.0.0.11
实验步骤:
STEP 1,搭建Java Web服务器环境
安装 JDK + Tomcat 6.0.14 , HTTP端口8080 , HTTPS端口8443
JAVA_HOME = D:Javajdk1.6.0_04
CATALINA_HOME = D:Javaapache-tomcat-6.0.14
安装完毕,启动Tomcat ,在浏览器上 测试 http://victor-pc:8080/ ,如何出现一只小猫就说明可以正常访问。
STEP 1,搭建Java Web服务器环境
安装 JDK + Tomcat 6.0.14 , HTTP端口8080 , HTTPS端口8443
JAVA_HOME = D:Javajdk1.6.0_04
CATALINA_HOME = D:Javaapache-tomcat-6.0.14
安装完毕,启动Tomcat ,在浏览器上 测试 http://victor-pc:8080/ ,如何出现一只小猫就说明可以正常访问。
STEP 2,使用Java Keytool工具为系统生成HTTPS证书,并为系统注册
(Java Keytool相关资料可参阅:Java keytool 安全证书学习笔记), 在DOS窗体运行以下指令(建议编写一个BAT批处理文件执行)
(Java Keytool相关资料可参阅:Java keytool 安全证书学习笔记), 在DOS窗体运行以下指令(建议编写一个BAT批处理文件执行)
1.生成证书
keytool -genkey -keyalg RSA -alias tomcatsso -dname "cn=victor-pc" -keystore c:keys -storepass changeit
参数说明:
-genkey表示要创建一个新的密钥
-dname表示密钥的Distinguished Names,
CN=commonName
OU=organizationUnit
O=organizationName
L=localityName
S=stateName
C=country
Distinguished Names表明了密钥的发行者身份
-keyalg使用加密的算法,这里是RSA
-alias密钥的别名
-keypass私有密钥的密码
-keystore 密钥保存在C:keys
-storepass 存取密码,这里设置为changeit,这个密码提供系统从mykeystore文件中将信息取出
2.导出证书
keytool -export -file c:/tomcatsso.crt -alias tomcatsso -keystore c:/keys -storepass changeit
注释: 从keystore中导出别名为tomcatsso的证书,生成文件tomcatsso.crt
3.导入证书
keytool -import -file c:/tomcatsso.crt -alias tomcatsso -keystore c:/cacerts -storepass changeit
注释:将tomcatsso.crt导入jre的可信任证书仓库。注意,安装JDK是有两个jre目录,一个在jdk底下,一个是独立的jre,这里的目录必须同Tomcat使用的jre目录一致,否则后面Tomcat的HTTPS通讯就找不到证书了
(在上面导入的时候出现了一个问题,由于javahome的路径中有空格,在导入的时候会出现 Files不是合法命令的错误,没办法只好把cacerts这个证书从javahome下拷到 c: 下,导入成功后,再复制到C:Program Files (x86)Javajdk1.6.0_25jrelibsecurity下)
4.查看证书是否成功导入
STEP 3,配置Tomcat的HTTPS服务
编辑D:Javaapache-tomcat-6.0.14conf下的server.xml文件,
去掉此文件83到93行之间的注释,修改为:
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="c:/keys"
keystorePass="changeit"/>
启动Tomcat,访问https://victor-pc:8443/,出现一只小老虎说明HTTPS配置生效;
STEP 4,为HelloWorldExample程序配置CAS过滤器
访问http://victor-pc:8080/examples/servlets/servlet/HelloWorldExample,出现
Hello World!
界面说明应用正常启动:编辑D:Javaapache-tomcat-6.0.14webappsexamplesWEB-INF下的web.xml文件,添加如下信息:
拷贝casclient.jar文件到目录D:Javaapache-tomcat-6.0.14webappsexamplesWEB-INFlib下。
由于我们使用的是Tomcat6.0.14,因此,还要拷贝commons-logging-1.0.4.jar到该目录下。
由于我们使用的是Tomcat6.0.14,因此,还要拷贝commons-logging-1.0.4.jar到该目录下。
STEP 5,部署JA-SIG(CAS)服务器
拷贝cas.war到D:Javaapache-tomcat-6.0.14webapps目录下。启动Tomcat,访问网址http://victor-pc:8080/cas/index.jsp,出现以下画面:
拷贝cas.war到D:Javaapache-tomcat-6.0.14webapps目录下。启动Tomcat,访问网址http://victor-pc:8080/cas/index.jsp,出现以下画面:
输入用户名:admin 密码:admin,点击登录,出现登录成功说明CAS服务器配置运行成功。
STEP 6,测试JA-SIG(CAS)部署结果
启动Tomcat。
测试使用浏览器登陆以下网址:http://linly:8080/examples/servlets/servlet/HelloWorldExample,页面将弹出以下
启动Tomcat。
测试使用浏览器登陆以下网址:http://linly:8080/examples/servlets/servlet/HelloWorldExample,页面将弹出以下
SSO登录认证界面:
输入用户名=密码,如:admin/admin,则通过验证,进入应用的入口界面,如下:
HELLO WORD!
细心的用户将发现,此时的URL不再是:
http://victor-pc:8080/examples/servlets/servlet/HelloWorldExample,
URL的尾端带上了一个ticket参数:
http://victor-pc:8080/examples/servlets/servlet/HelloWorldExample,
URL的尾端带上了一个ticket参数:
http://victor-pc:8080/examples/servlets/servlet/HelloWorldExample?ticket=ST-1-fFeHVaBvw11tDnCfdESr
到此,JA-SIG(CAS)服务器的初步SSO部署宣告成功