基于CAS的SSO单点登录搭建

在这里插入图片描述
搭建server.huweiqin.com =>> 对应部署cas server的tomcat,这个虚拟域名还用于服务端证书生成
client1.huweiqin.com =>> 对应部署client1客户端应用的tomcat
client2.huweiqin.com =>> 对应部署client2客户端应用的tomcat
1.生成证书
keytool -genkey -alias huwqsso -keyalg RSA -keysize 1024 -keypass huweiqin -validity 365 -keystore c
[说明]:-alias后面的别名可以自定义,-keypass指定证书密钥库的密码, -storepass和前面keypass密码相同,否则下面tomcat 配置https 会访问失败 -keystore指定证书的位置,这里指定放在c盘根目录,密钥库名称可以自定义…这里是huweiqin.keystore
在这里插入图片描述
【注意】:第一个让你输入的“您的名字与姓氏是什么”,请必须输入在C:\Windows\System32\drivers\etc\hosts文件中加入的服务端的域名.我这里也就是server.huweiqin.com,为何这么做?首先cas只能通过域名来访问,不能通过ip访问,同时上方是生成证书,所以要求比较严格,所以如果不这么做的话,及时最终按照教程配置完成,cas也可以正常访问,访问一个客户端应用虽然能进入cas验证首页,但是,当输入信息正确后,cas在回调转入你想访问的客户端应用的时候,会出现No subject alternative names present错误异常信息,这个错误也就是在上面输入的第一个问题答案不是域名导致、或者与hosts文件配置的不一致导致。
2.导出证书
keytool -export -alias huwqsso -keystore c:\huweiqin.keystore -file c:\huwqsso.crt -storepass huweiqin
【说明】:-alias后面的名称要与生成证书的命令里面的alias的名称一致. –keystore后面指定证书存放的位置,这里我放在C盘根目录,同时证书名称要与【生成证书】对应的命令里的keystore名称一致.这里是zhoubang.keystore,-file后面才crt路径,我也指定在c盘根目录. –storepass的证书密码要与上面输入的密码一致.
3.客户端导入证书
keytool -import -file c:\huwqsso.crt -keystore “%JAVA_HOME%\jre\lib\security\cacerts” -alias huwqsso
【说明】:-file指定证书的位置,也就是上一步导出证书的位置,即c:\ ssodemo.crt 命令中指定了JAVA_HOME,意思是将证书导入到客户端证书库,也就是jdk证书库中.因为客户端应用运行在本地,需要jdk的支持。
-trustcacerts 信任来自cacerts的证书

在这里插入图片描述
回车之后,会让你输入密钥库口令,注意,这里的密码必须要输入changeit,不能输入上面指定的密码zhoubang,切记,否则导入客户端证书会有问题,如果是多台机器演示,需要在每一台客户端导入该证书,步骤都是一样的。当看到提示“是否信任此证书”,输入y回车即可,见下图:(说明,命令中的-alias后面的别名可以自定义,如果出现【证书未导入,别名<***>已经存在】的错误,该意思是说客户端的密钥库中已经存在该别名证书了,重新指定其他别名即可.)

部署CAS-Server 相关的Tomcat
1.配置HTTPS
解压apache-tomcat-7.0.57-windows-x64.zip,我本地路径为E:\apache-tomcat-7.0.57,编辑E:\apache-tomcat-7.0.57\conf\server.xml,找到下面片段:
在这里插入图片描述
去掉注释,修改为
在这里插入图片描述
其中,keystoreFile就是创建证书的路径,keystorePass就是创建证书的密码

2.验证HTTPS配置
其他按照默认配置不作修改,双击E:\apache-tomcat-7.0.57\bin \startup.bat 启动tomcat 验证https是否配置成功,我本地使用火狐浏览器访问,在地址栏输入
https://server.huweiqin.com:8443/ 出现下面画面,其实这就表明cas服务端tomcat的https配置是没有问题了.
在这里插入图片描述
3.部署CAS_Server
CAS-Server 下载地址:http://www.jasig.org/cas/download
本文以cas-server-webapp-4.0.0.rar为例,解压提取cas-server-webapp-4.0.0.war文件,把改文件copy到E:\apache-tomcat-7.0.57\webapps 目下,并重命名为:cas.war. 启动tomcat,在浏览器地址栏输入:https://server.huweiqin.com:8443/cas ,回车,出现CAS服务端的登录验证首页:在这里插入图片描述
【说明】:此时,CAS只是单独运行,至于登录的用户名和密码是什么,请查看: E:\apache-tomcat-7.0.57\webapps\cas\WEB-INF\deployerConfigContext.xml文件中有这样一段配置:
在这里插入图片描述
这个配置是默认静态配置用户名和密码,那就在浏览器的CAS服务的登陆框中输入用户名casuser和密码Mellon,登录看看效果,就会出现验证成功的页面,如下图。你也可以在文件中自己配置自己的用户名和密码。
在这里插入图片描述
4.部署CAS客户端相关的Tomcat
使用tomcat默认自带的 webapps\examples 作为演示的简单web项目 本地解压了2份tomcat,作为客户端服务器
cas-client-core-3.2.1.jar、commons-logging.jar
首先,将上面2个jar分别放到E:\apache-tomcat-7.0.57-client1\webapps\examples\WEB-INF\lib目录 和E:\apache-tomcat-7.0.57-client2\webapps\examples\WEB-INF\lib目录
在这里插入图片描述
启动三个tomcat
http://client1.huweiqin.com:18080/examples/servlets/
在这里插入图片描述
在这里插入图片描述
看到上述界面表示apache-tomcat-7.0.57-client1的基本安装配置已经成功。 接下来需要配置最重要的内容,让客户端应用和CAS服务连接: 编辑E:\apache-tomcat-7.0.57-client1\webapps\examples\WEB-INF\web.xml,在最下面加入如下配置:

<!-- ======================== 单点登录开始 ======================== --> 
<!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置-->
<listener>							 
	<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener
	</listener-class>
	<!-- 该过滤器用于实现单点登出功能,可选配置 -->
	<filter> 		
		<filter-name>CAS Single Sign Out Filter</filter-name>
		<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> 	
	</filter>
	<filter-mapping> 		
		<filter-name>CAS Single Sign Out Filter</filter-name>
		<url-pattern>/*</url-pattern> 	
	</filter-mapping>
</listener>

猜你喜欢

转载自blog.csdn.net/qq_36879870/article/details/88544388