环境为 winxp tomcat5.5.17 jdk1.5.0_05
1. 生成服务端证书
keytool -genkey -alias casserver -keyalg RSA -keystore tomcat.jks
CN:localhost
其他的随便
这里要注意姓名必须是服务器的域名 由于我是在本机所以是localhost
如果不这样写就会报如下异常:
java.io.IOException: HTTPS hostname wrong: should be <localhost>
这个异常出现在创建证书的第一个问题 姓名。其实这个“姓名”应该是域名。比如说localhost或是blogjava.net之类的。输成了姓名,和真正运行的时候域名不符,就会出错。浏览器无所谓,弹出一个对话框,用户按一下就行了。但http client就直接抛出了异常。--google出来的
2. 导出证书
keytool -export -file cas.cer -aliastomcat -keystore tomcat.jks
3.把导出的证书导入到jre/lib/security的cacerts中
方法如下
假设你的jdk安装在C:\jdk1.5这个目录,
开始 >> 运行 >> 输入cmd 进入dos命令行 >>
再用cd进入到C:\jdk1.5\jre\lib\security这个目录下
敲入如下命令回车执行
keytool -import -alias cacerts
-keystore C:\jdk1.5\jre\lib\security\cacerts
-file C:\cas.cer
-trustcacerts
此时命令<nobr><a class="iAs" oncontextmenu="return false;" onmousemove="kwM(2);" onmouseover="kwE(event,2);" style="CURSOR: hand; COLOR: #0000ff; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="window.open('http://www.baidu.com/s?wd=site:(bokee.com)行会','_blank');" onmouseout="kwL(event);" target="_blank">行会</a></nobr>提示你输入cacerts证书库的密码,
你敲入changeit就行了,这是java中cacerts<nobr><a class="iAs" oncontextmenu="return false;" onmousemove="kwM(0);" onmouseover="kwE(event,0);" style="CURSOR: hand; COLOR: #0000ff; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="window.open('http://www.baidu.com/s?wd=site:(bokee.com)证书','_blank');" onmouseout="kwL(event);" target="_blank">证书</a></nobr>库的默认密码,
你自已也可以修改的。
将服务器下发的证书导入到JVM中
keytool-import-trustcacerts-aliascnc-keystore$JAVA_HOME/JRE/LIB/SECURITY/CACERTS-filec:\mycert.cer
(如果这样不行,则到JAVA_HOME/JRE/LIB/SECURITY/下进行)
这里又有一点要注意的 可能由于我的jre在线升级过一次 现在的工作的jre目录在C:\Program Files\Java\jre1.5.0_06\ 所以要把证书导入到C:\Program Files\Java\jre1.5.0_06\lib\security的cacerts中去
我一开始就是因为 导入到了%JAVA_HOME%的jre中 结果弄了半天都不成功报异常如下:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
4.配置tomcat使用ssl
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false"//单向SSL
keystoreFile="C:\tomcat.jks" //我生成的keystore存放在c盘
sslProtocol="TLS" />
5.
部署CAS应用
解压 cas-server-3.0.4.zip, 提取 \target\cas.war 文件,将 cas.war 文件复制到 TOMCAT 的安装路径 webapps 下,启动 TOMCAT ,检查 CAS 应用是否正常启动。
6.客户端配置
下载cas-client-2.0.11.zip
把
java/lib/casclient.jar考到 你所发布的webapp的WEB-INF/lib下
修改WEB-INF/web.xml 在里面添加过滤器
<filter>
<filter-name>CASFilter</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://localhost:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://localhost:8443/cas/proxyValidate</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>localhost:8443</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
把里面的localhost换成域名
8443换成你所使用的端口
接着连接 https://localhost:8443/app1 //app1是你要实现sso的web应用
接着页面就会跳转到cas的登陆页面 就像你在第5步看到的页面一样
随便用一个用户名登陆 只要 用户名和密码一样就可以登陆
可以在app2上重复步骤6 这样只要在app1上登陆后 再连接app2的url就不用再次登陆了
这就是单点登陆了。
其实是一个很简单的事情 但是过程中要注意 步骤1和3
分享到:
相关推荐
CAS实现sso单点登录原理,可以方便技术人员理解
Weblogic使用YALE(耶鲁)CAS实现SSO单点登录 的方法.doc
CAS-SSO系统架构 多系统单点登录的实现方案。
CAS框架SSO的实现
Yale cas 实现sso教程,包括了java实现和dotnet实现。http://214s.5d6d.com
使用CAS框架实现SSO单点登录,其中包含: 1、CAS服务器端安装包 2、客户端源码包和所需的所有jar包 3、CAS+框架+SSO的实现.pdf 5、CAS+SSO实例安装和配置指南PDF版.rar 6、Tomcat中使用Yale+CAS实现单点登陆(SSO)....
简单而精练的介绍了yalu-cas的原理及其实现
cas sso cas原理 sso原理
Yale CAS 3.3实现SSO详细教程。
CAS实现单点登录(SSO)经典完整教程,详细描述了单点登录的有关内容。PS:有些错误的地方。
CAS单点登录,定制CAS单点登录,此文档详细介绍了如何定制CAS,实现单点登录
用CAS实现框架的SSO单点登录.详细介绍操作流程并配有代码截图.
CAS + .net Client 实现 SSO部署说明
CAS SSO 单点登录记录 作者:刘仁奎 个人网址 程序喵:http://www.ibloger.net / http://www.chengxumiao.net 程序员购书导航指南:http://books.chengxumiao.net QQ:1056856191 GitHub地址:...
NULL 博文链接:https://wangchao-17915566.iteye.com/blog/334582
CAS(Central Authentication Service) 是 Yale 大学发起的构建 Web SSO 的 Java开源项目。
spring boot整合spring security 实现SSO单点登陆 完整DEMO. 1、配置本地hosts 127.0.0.1 sso-login 127.0.0.1 sso-resource 127.0.0.1 sso-tmall 127.0.0.1 sso-taobao windows系统的路径在C:\WINDOWS\system...
解压缩,根据配置CAS.txt说明进行单点登录配置,实现单点登录