一.概述
此文的目的就是为了帮助初步接触SSO和CAS 的人员提供一个入门指南,一步一步演示如何实现基于CAS的单点登录。
二.演示环境
- windows10 64位
- JDK1.8
- 3个tomcat(本文演示的tomcat版本分别为7、8、9)
- CAS-server-4.2.4、CAS-client-3.2.1
三.安装部署
Tomcat和JDK的下载安装我在这里就不多说了。CAS-server-4.2.4、CAS-client-3.2.1我会提供给你们下载。
四.安全证书的配置
-
hosts文件配置
在 C:\Windows\System32\drivers\etc\hosts 文件中添加以下三条配置127.0.0.1 demo.micmiu.com 127.0.0.1 app1.micmiu.com 127.0.0.1 app2.micmiu.com
demo.micmiu.com =>> 对应部署cas server的tomcat9,这个虚拟域名还用于证书生成
app1.micmiu.com =>> 对应部署app1 的tomcat7
app2.micmiu.com =>> 对应部署app2 的tomcat8 -
生成证书
keytool -genkey -alias ssodemo -keyalg RSA -keysize 1024 -keypass michaelpwd -validity 365 -keystore d:\sso\ssodemo.keystore -storepass michaelpwd
- 截图中需要输入的姓名和上面hosts文件中配置的一致;
- keypass 和 storepass 两个密码要一致,否则下面tomcat 配置https 访问失败;
3.导出证书
keytool -export -alias ssodemo -keystore d:\sso\ssodemo.keystore -file d:\sso\ssodemo.crt -storepass michaelpwd
4.客户端导入证书
keytool -import -keystore %JAVA_HOME%\jre\lib\security\cacerts -file d:\sso\ssodemo.crt -alias ssodemo
该命令中输入的密码和上面输入的不是同一个密码;如果是多台机器演示,需要在每一台客户端导入该证书。
五.部署CAS-Server相关的Tomcat
1.在tomcat9中修改server.xml配置。
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
修改成如下
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="d:/sso/ssodemo.keystore" keystorePass="michaelpwd"
clientAuth="false" sslProtocol="TLS" URIEncoding="UTF-8"/>
参数说明
- keystoreFile 就是创建证书的路径
- keystorePass 就是创建证书的密码
2.验证HTTPS配置
点击tomcat9 bin\startup.bat,启动,访问地址:https://demo.micmiu.com:8443/
如果看到上述界面表示https 访问配置成功。
3.部署CAS-Server
将cas-server-webapp-4.2.4.war重命名之后放到D:\software\tomcat\apache-tomcat-9.0.20\apache-tomcat-9.0.20\webapps(这是作者自己的目录)目录下,然后重启tomcat,浏览器访问https://demo.micmiu.