cas 的基本流程配置 及 遇到的问题

欢送这两天的折腾将成为历史啦~~

说说,简单的cas配置(跑通流程)。

 

1.cas服务器端配置。

下载:http://www.ja-sig.org/downloads/cas/cas-server-3.1.1-release.zip

我使用的服务器为tomcat

1.1首先创建证书:

keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3000(过期时间,不写默认90天)
您的名字与姓氏是什么?
  [Unknown]:  maggie(你的计算机名称或域名,但是此处我使用IP的时候客户端是会报错的!!)
您的组织单位名称是什么?
  [Unknown]:  (回车)
您的组织名称是什么?
  [Unknown]:  (回车)
您所在的城市或区域名称是什么?
  [Unknown]:  (回车)
您所在的州或省份名称是什么?
  [Unknown]:  (回车)
该单位的两字母国家代码是什么
  [Unknown]:  (回车)
CN=maggie, OU=null, O=null, L=null, ST=null, C=null 正确吗?
  [否]:  y 

1.2导出证书:

keytool -export -trustcacerts -alias tomcat -file cas.cer -keystore  server.keystore -storepass changeit

1.3配置cas服务器

(我使用的是Tomcat6)

打开tomcat6/conf/server.xml

找到其中注释掉的包含“port="8443"”部分,将其替换为:

(其中keystoreFile为1.1中创建的证书文件)
1.4部署cas服务器端war

解压下载的cas-server-3.1.1-release.zip ,在里面的modules/cas-server-webapp-3.1.1.war,

将其重命名为cas311.war(便于访问,也可不改),部署至tomcat的webapp文件夹下。

1.5测试部署的cas服务器端war

在IE浏览器中输入:http://ip:8443/cas311/login (其中cas311为部署的war包的名字),此时会出现“安全警报”,点击“是”.

浏览器出现cas的默认登录页面,此时验证的方式为默认的验证,只要用户名、密码相同即可验证成功。

具体应用到项目时需要扩展,这里不再赘述。

验证成功后,会显示验证成功的页面。

2.cas客户端配置

下载:http://www.ja-sig.org/downloads/cas/cas-client-java-2.1.1.zip

 

2.1导入证书

将1.2导出的证书导入到cas客户端使用的jre中。

%JAVA_HOME%/bin/keytool -import -keystore %JAVA_HOME%/jre/lib/security/cacerts -file cas.cer -alias maggie

可通过以下语句查看所有导入的证书(一般没有异常,导入既是正常的)

%JAVA_HOME%/bin/keytool -list -v -keystore %JAVA_HOME%/jre/lib/security/cacerts >a.txt
(其中 >a.txt为把查询结果另存至当前目录的a.txt中)

2.2客户端程序配置

2.2.1添加jar包

解压下载的cas-client-java-2.1.1.zip,找到cas-client-java-2.1.1/dist/casclient.jar,

将其添加至需要进行cas认证的项目的/WEB-INF/lib下面。

2.2.2配置需要进行cas认证的项目的web.xml。

其中:

前两个网址必须使用1.1制作证书时,输入的第一个参数(计算机名或IP)。

第三个网址为cas客户端程序的服务地址

3.遇到的问题:

3.1java.security.cert.CertificateException: No name matching maggie found

是由于生成证书时,使用的是IP或别的什么,反正不是机器名。

解决办法:好吧,用命令删除证书,从新做吧。。。

命令为:
keytool -delete -E:/server.keystore

(注意,此处删除成功,但不会删除磁盘上的文件,保险点,手动删了吧~)

3.2No subject alternative names present

是由于生成证书时,使用的是IP或别的什么,反正不是机器名。

解决办法同3.1

3.3unable to find valid certification path to requested target

由于jre中找不到证书

(这个问题折腾我N久!!)

发现eclipse中跑正常,单独启动tomcat就会报错。

后来仔细一查才发现tomcat使用的jre和eclipse中的不一样。

查找tomcat使用的jre方法如下:

打开tomcat/bin/tomcat6w.exe

打开“Java”选项卡,第一个文本框:Java Virtual Machine,

看到了吧?就那里面的鬼东西。。。

不知道java6是怎么搞的。。。安装后弄两个jre,

而一般配的java_home都是jdk目录的那个。

3.4 Unable to validate ProxyTicketValidator[[edu.yale.its.tp.cas.client.ProxyTicketValidator proxyList=[null] ...

验证公司给错我证书了。。。。。。。。。。。。。。。。。。。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值