CAS+SSO配置单点登录完整案例
目录
看这篇文章之前可以先看一下整篇文章脉络:
①:准备部署环境所需得jdk,tomcat,cas-server,cas-client
②:修改hosts文件
③:配置安全证书
④:部署CAS-Server并配置Tomcat
4.1:配置HTTPS
4.2:验证HTTPS配置
4.3:部署CAS-Server
4.4:把mysql-connector-java-5.0.8.jar和cas-server-support-jdbc-4.0.0.jar放到cas得lib包中
4.5:修改配置,支持mysql数据库交互验证
⑤:部署CAS_Client并配置Tomcat
5.1:cas-client-core-3.3.3.jar、commons-logging.jar放到客户端应用得lib包中
5.2:准备两个tomcat作为客户端服务器
5.3:配置两个客户端服务器得端口号
5.4:让客户端应用和CAS服务连接:在两个客户端得web.xml里面加上要添加xml文件
⑥:测试验证SSO
部署环境
1.jdk1.8.0_74-windows-x64.exe(最好只装一个版本的jdk,避免出现意外错误)
2.apache-tomcat-8.5.38.zip(非安装版)
3.cas-server-4.0.0-release.zip(cas服务端)
4.cas-client-3.2.0-release.zip(cas客户端)
环境说明
修改hosts文件添加域名,C:\Windows\System32\drivers\etc\hosts 在文件末端添加下面三条信息:
127.0.0.1 sso.server.com(对应部署casserver的tomcat)
127.0.0.1 sso.client1.com(对应部署cas client1的tomcat)
127.0.0.1 sso.client2.com(对应部署cas client2的tomcat)
【注意】:这个非常重要,因为CAS单点登录系统是基于JAVA安全证书的https协议,要使用CAS单点登录必须要配置域名, cas server是不能通过ip访问的。
上面3个ip都是127.0.0.1,这是为什么呢?因为我的环境都是在同一台机器,所以ip都是一致的。一个域名对应一个应用,模拟多端!
安全证书配置
本教程由于是演示所以用JDK自带的keytool工具生成证书;如果以后在产品环境中使用肯定要去证书提供商购买,证书认证一般都是由 VeriSign认证,中文官方网站:认证证书网址。
1.打开cmd命令窗口(管理员身份打开)
2.生成证书,在cmd窗口输入以下命令:
keytool -genkey -alias ssodemo -keyalg RSA -keysize 1024 -keypass 123456 -validity 365 -keystore c:\wsriakey -storepass 123456
【说明】:-alias后面的别名可以自定义;-validity指定证书有效期;-keypass指定证书密钥库的密码;-keystore指定证书的位置,这里指定放在c盘根目录,密钥库名称可以自定义,这里是wsriakey;-storepass和前面-keypass密码相同,否则下面tomcat 配置https 会访问失败。
3.命令输入完成,回车之后,会提示你输入一些资料

【注意】:第一个让你输入的“您的名字与姓氏是什么”,请必须输入在C:\Windows\System32\drivers\etc\hosts文件中加入的服务端的域名。
我这里也就是sso.server.com,为何这么做?
首先cas只能通过域名来访问,不能通过ip访问,同时上方是生成证书,所以要求比较严格,如果不这么做的话,既是最终按照教程配置完成,cas也可以正常访问,访问一个客户端应用也能进入cas验证首页,但是,当输入信息正确后,cas在回调转入你想访问的客户端应用的时候,会出现No subject alternative names present错误异常信息,这个错误也就是在上面输入的第一个问题答案不是域名导致、或者与hosts文件配置的不一致导致。
4.导出证书:
在cmd窗口继续输入以下命令,导出证书:
keytool -export -alias ssodemo -keystore c:\wsriakey -file c:\wsria.crt -storepass 123456
【说明】:-alias后面的名称要与生成证书的命令里面的alias的名称一致; –keystore指定证书存放的位置,这里我放在C盘根目录,同时证书名称要与”生成证书”对应的命令里的keystore名称一致,这里是wsriakey;-file指定导出证书的路径,我也指定在c盘根目录;-storepass的证书密码要与上面输入的密码一致。

我们再看看c盘下面是否生成crt文件:

5.导入证书:
keytool -import -keystore %JAVA_HOME%\jre\lib\security\cacerts -file c:\wsria.crt -alias ssodemo
【说明】:命令中指定了JAVA_HOME,意思是将证书导入到客户端证书库,也就是jdk证书库中,因为客户端应用运行在本地,需要jdk的支持。-file指定证书的位置,也就是上一步导出证书的位置,即c:\wsria.crt。
回车之后,会让你输入密钥库口令,注意,这里的密码必须要输入changeit,不能输入上面指定的密码123456,切记,否则导入客户端证书会有问题,如果是多台机器演示,需要在每一台客户端导入该证书,步骤都是一样的。当看到提示“是否信任此证书”,输入y回车即可,见下图:(说明,命令中的-alias后面的别名可以自定义,如果出现”证书未导入,别名<***>已经存在”的错误,该意思是说客户端的密钥库中已经存在该别名证书了,重新指定其他别名即可)

至此,CAS所需的证书环境,已经配置好。
下面,开始我们的CAS服务、Tomcat、以及多客户端的配置及测试访问。
部署CAS-Server以及配置Tomcat
1.配置HTTPS
由于CAS是基于HTTPS协议,所以需要配置服务端的tomcat

本文详述了CAS+SAM单点登录系统的部署过程,包括环境搭建、证书配置、CAS服务与Tomcat配置,以及多客户端单点登录的实现与测试。涵盖从JDK、Tomcat到CAS Server与Client的全面配置指南。

4543

被折叠的 条评论
为什么被折叠?



