实验背景: 
系统环境: 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:\Java\jdk1.6.0_04 
CATALINA_HOME = D:\Java\apache-tomcat-6.0.14 
安装完毕,启动Tomcat ,在浏览器上 测试 http://victor-pc:8080/ ,如何出现一只小猫就说明可以正常访问。
 
STEP 2,使用Java Keytool工具为系统生成HTTPS证书,并为系统注册 
(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)\Java\jdk1.6.0_25\jre\lib\security下)
 
4.查看证书是否成功导入
  

STEP 3,配置Tomcat的HTTPS服务 
编辑D:\Java\apache-tomcat-6.0.14\conf下的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:\Java\apache-tomcat-6.0.14\webapps\examples\WEB-INF下的web.xml文件,添加如下信息: 
 

 
 
 
 
 
拷贝casclient.jar文件到目录D:\Java\apache-tomcat-6.0.14\webapps\examples\WEB-INF\lib下。 
由于我们使用的是Tomcat6.0.14,因此,还要拷贝commons-logging-1.0.4.jar到该目录下。
 
STEP 5,部署JA-SIG(CAS)服务器 
拷贝cas.war到D:\Java\apache-tomcat-6.0.14\webapps目录下。启动Tomcat,访问网址http://victor-pc:8080/cas/index.jsp,出现以下画面: 
 
输入用户名:admin 密码:admin,点击登录,出现登录成功说明CAS服务器配置运行成功。
 
STEP 6,测试JA-SIG(CAS)部署结果 
启动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?ticket=ST-1-fFeHVaBvw11tDnCfdESr
 
到此,JA-SIG(CAS)服务器的初步SSO部署宣告成功

CAS环境搭建的更多相关文章

  1. CAS环境搭建-证书方式(https连接)

    一.教程前言 1 教程目的:从头到尾细细道来单点登录服务器及客户端应用的每个步骤 2 单点登录(SSO):请看<CAS简介> 3 本教程使用的SSO服务器是Yelu大学研发的CAS(Cen ...

  2. .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

    2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...

  3. Azure Service Fabric 开发环境搭建

    微服务体系结构是一种将服务器应用程序构建为一组小型服务的方法,每个服务都按自己的进程运行,并通过 HTTP 和 WebSocket 等协议相互通信.每个微服务都在特定的界定上下文(每服务)中实现特定的 ...

  4. rnandroid环境搭建

    react-native 环境搭建具体步骤这个大家已经玩烂了,这个主要是记录下来自己做win7系统遇到的坑 1.com.android.ddmlib.installexception 遇到这个问题,在 ...

  5. python开发环境搭建

    虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...

  6. springMVC初探--环境搭建和第一个HelloWorld简单项目

    注:此篇为学习springMVC时,做的笔记整理. MVC框架要做哪些事情? a,将url映射到java类,或者java类的方法上 b,封装用户提交的数据 c,处理请求->调用相关的业务处理—& ...

  7. 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~

    一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...

  8. Nexus(一)环境搭建

    昨天,成功搭建了自己的 Maven 环境(详见:Maven(一)环境搭建),今天就来研究和探讨下 Nexus 的搭建! 使用背景: 安装环境:Windows 10 -64位 JDK版本:1.7 Mav ...

  9. 「译」JUnit 5 系列:环境搭建

    原文地址:http://blog.codefx.org/libraries/junit-5-setup/ 原文日期:15, Feb, 2016 译文首发:Linesh 的博客:环境搭建 我的 Gith ...

随机推荐

  1. Unity性能优化(2)-官方教程Diagnosing performance problems using the Profiler window翻译

    本文是Unity官方教程,性能优化系列的第二篇<Diagnosing performance problems using the Profiler window>的简单翻译. 相关文章: ...

  2. 移动前端手机输入法自带emoji表情字符处理

    今天,测试给我提了一个BUG,说移动端输入emoji表情无法提交.很早以前就有思考过,手机输入法里自带的emoji表情,应该是某些特殊字符.既然是字符,那应该都能提交才对,可是为啥会被卡住呢?搜了一下 ...

  3. Android LayoutInflater.inflate(int resource, ViewGroup root, boolean attachToRoot)的参数理解

    方法inflate(int resource, ViewGroup root, boolean attachToRoot) 中 第一个参数传入布局的资源ID,生成fragment视图,第二个参数是视图 ...

  4. 机器学习之sklearn——SVM

    sklearn包对于SVM可输出支持向量,以及其系数和数目: print '支持向量的数目: ', clf.n_support_ print '支持向量的系数: ', clf.dual_coef_ p ...

  5. [LeetCode] Insertion Sort List 链表插入排序

    Sort a linked list using insertion sort. 链表的插入排序实现原理很简单,就是一个元素一个元素的从原链表中取出来,然后按顺序插入到新链表中,时间复杂度为O(n2) ...

  6. [板子]最小费用最大流(Dijkstra增广)

    最小费用最大流板子,没有压行.利用重标号让边权非负,用Dijkstra进行增广,在理论和实际上都比SPFA增广快得多.教程略去.转载请随意. #include <cstdio> #incl ...

  7. POJ 1979 Red and Black

    #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #inc ...

  8. 【MySQL】mysql workbench

    1.导入,导出,数据之间的传输[两台服务器]2.连接管理3.服务器管理4.表的管理

  9. ITIL十大流程

    1.服务水平管理(Service Level Management):服务水平管理的目标是通过协调IT用户和提供者双方的观点,实现特定的.一致的.可测量的服务水平,以为客户节省成本.提高用户生产率. ...

  10. SLES 11 SP3防火墙设置

    防火墙简介 SLES 11 SP3 系统安装后,防火墙一般是启动的,它有两个服务:SuSEfirewall2_setup.SuSEfirewall2_init 关闭防火墙 # 方法一 rcSuSEfi ...