一:不需https访问环境搭建
1、上cas的官网下载cas server 官网地址:https://github.com/Jasig/cas/releases,下载好后
解压下载的 cas-server-4.0.0-release.zip 压缩包,把cas-server-4.0.0\modules\cas-server-webapp-4.0.0.war
重命名为cas.war
也可以到http://download.csdn.net/download/zangguangtian/10271027下载,下载号后
解压下载的 casServer-4.0.0.zip压缩包,把casServer4.0.0\modules\cas-server-webapp-4.0.0.war
重命名为cas.war
2、cas.war 放到tomcat的webapps目录下
3、CAS 默认认证方式使用的是HTTPS协议,一般对安全性不高的话建议取消改成HTTP方式。开启的话会经常提示证书过期、需要用户确认等,对客户的感知不好,当前有需要的可以开启
取消HTTPS协议
webapps\cas\WEB-INF\spring-configuration\warnCookieGenerator.xml ,找到如下配置
<bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator" p:cookieSecure="true" p:cookieMaxAge="-1" p:cookieName="CASPRIVACY" p:cookiePath="/cas"/> 修改 p:cookieSecure="true" 为 p:cookieSecure="false"
webapps\cas\WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml ,找到如下配置
<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator" p:cookieSecure="true" p:cookieMaxAge="-1" p:cookieName="CASTGC" p:cookiePath="/cas"/> 修改 p:cookieSecure="true" 为 p:cookieSecure="false"
webapps\cas\WEB-INF\deployerConfigContext.xml 文件 ,找到如下配置:
<bean id="proxyAuthenticationHandler" class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient"/> 增加p:requireSecure="false"即HTTPS为不采用。 修改后为: <bean id="proxyAuthenticationHandler" class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" p:requireSecure="false"/>
4、启动tomcat ,访问 http://localhost:8085/cas 则可以看到登陆界面,4.0 之后默认是配置在 deployerConfigContext.xml 配置文件中,可以看到用户名密码为 casuser/Mellon
二:配置https登录
1、生成证书
1.1 运行CMD
C:\Users\Administrator>keytool -genkey -alias tomcat -keyalg RSA -keypass change
it -storepass changeit -keystore server.keystore -validity 3000
您的名字与姓氏是什么?
[Unknown]: COCO //计算机名或者域名,我是计算机名为例
您的组织单位名称是什么?
[Unknown]:回车
您的组织名称是什么?
[Unknown]:回车
您所在的城市或区域名称是什么?
[Unknown]:回车
您所在的州或省份名称是什么?
[Unknown]:回车
该单位的两字母国家代码是什么
[Unknown]: ZH
CN=COCO, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=ZH 正确吗?
[否]: y
1.2 导出证书
C:\Users\Administrator>keytool -export -trustcacerts -alias tomcat -file cas.cer
-keystore server.keystore -storepass changeit
保存在文件中的认证
生成证书的默认目录 (win7/win8):C:\Users\Administrator \ cas.cer 和 C:\Users\Administrator \server.keystore
1.3 客户端导入证书
C:\Users\Administrator>keytool -import -keystore D:\Java\jdk1.6.0\jre\lib\securi
ty\cacerts -file C:/Users/Administrator/cas.cer -alias client
输入keystore密码:changeit
再次输入新密码:changeit
所有者:CN=www.coco.com, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=ZH
签发人:CN=www.coco.com, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=ZH
序列号:53fc2ad2
有效期: Tue Aug 26 14:36:02 CST 2014 至Sat Nov 12 14:36:02 CST 2022
证书指纹:
MD5:14:3C:A9:BA:BB:0C:85:7C:94:9D:0F:6A:51:EF:A5:A8
SHA1:F2:42:D4:A5:95:97:8D:78:32:C1:4F:40:AF:80:BA:BE:8C:00:4F:73
签名算法名称:SHA1withRSA
版本: 3
信任这个认证? [否]: y
认证已添加至keystore中
这时 jdk1.6.0\jre\lib\security 目录 会生成一个cacerts 文件。
1.4 配置CAS服务器
替换 tomcat /conf/server.xml 里面的 2.1 cas-server-4.0.0-release 官网下载 https://www.apereo.org/cas/download,解压后将cas-server-4.0.0-release\cas-server-4.0.0\modules\cas-server-webapp-4.0.0.war 复制到apache-tomcat-6.0.41\webapps下面重命名为cas.war ,也可以不用重命名。 2.2 启动Tomcat 无报错后,浏览 https://localhost:8443/cas/login 以默认用户名:casuser,密码:Mellon 登陆。 注:cas-server-4.0.0-release 默认的验证规则 不再是以用户名和密码相同就通过了,而是由 cas-server-4.0.0-release\cas-server-4.0.0\cas-server-webapp\src\main\webapp\WEB-INF\deployerConfigContext.xml的 2.3 注销 https://localhost:8443/cas/logout 2.4 问题 虽然以 http://localhost:8080/cas/login 也可以登陆,是没有https 安全认证的,无意义。 You are currently accessing CAS over a non-secure connection. Single Sign On WILL NOT WORK. In order to have single sign on work, you MUST log in over HTTPS.
2、验证服务端是否配置正确
Non-secure Connection