1.因为是本地模拟sso环境,而sso的环境测试需要域名,所以需要虚拟几个域名出来,步骤如下:
2.进入目录C:\Windows\System32\drivers\etc
3.修改hosts文件
127.0.0.1 jeesz.cn
127.0.0.1 sso1.jeesz.cn
127.0.0.1 sso2.jeesz.cn
4.生成认证证书
注意:我们可以根据sso单点登录的架构图可以看到,在客户端和服务端进行交互的时候,是需要认证的,在这里我们使用jdk中的keytool方案生成证书(一般正式环境,使用正规机构颁发的证书,可以去购买)
(一)创建一个caskey目录,如:D:\sso-cas\caskey
(二)打开cmd的命令窗口:
(三)进入jdk bin的安装目录
(四)使用keytool -genkey -alias mycacerts -keyalg RSA -keystore D:/sso-cas/caskey/keycard 生成key
注意:输入相关信息用于生成证书. 其中名字与姓氏使用你的域名,保持和C:\Windows\System32\drivers\etc\hosts 文件中映射域名相同,注意不要写成IP。
在这里我使用的口令是minglisoft(这个要记住,后面还会使用到)
名字姓氏使用的是jeesz.cn(对应host中的域名配置)
(五)使用命令keytool -export -file D:/sso-cas/caskey/keycard.crt -alias mycacerts -keystore D:/sso-cas/caskey/keycard导出证书:
注意:口令为minglisoft
(六)将证书导入到 JDK 安装目录
Keytool -import -keystore C:/"Program Files"/Java/jdk1.8.0_131/jre/lib/security/cacerts -file D:/sso-cas/caskey/keycard.crt -alias mycacerts
备注:我已经帮忙生成了,最终要将cacerts拷贝到C:\Program Files\Java\jdk1.8.0_131\jre\lib\security目录即可
注意口令:minglisoft
5. 准备好服务端的tomcat容器,这里使用的是tomcat8进行测试(首先要保证tomcat启动后是可以运行的),如下:
6.修改server.xml文件,如下:
注意: 这里使用的是https的认证方式,需要将这个配置放开,并做如下修改:
port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:/sso-cas/caskey/keycard"
keystorePass="minglisoft"
/>
注意: keystoreFile="D:/sso-cas/caskey/keycard" --证书了路径
keystorePass="minglisoft" --证书密码
7.测试https的8443端口是否可以访问:https://localhost:8443
配置没有问题
8.可以配置只通过域名访问,还是修改server.xml文件,将localhost的配置修改为jeesz.cn如下:
unpackWARs="true" autoDeploy="true">
unpackWARs="true" autoDeploy="true">
重启tomcat容器,访问如下:http://jeesz.cn:8080
9.将cas-server-webapp-4.2.7.war包拷贝到tomcat容器中,并命名为cas.war如下:
10.重启启动tomcat容器,访问cas, https://jeesz.cn:8443/cas
默认用户名为:casuser
默认密码为:Mellon
以下是所有的cas sso单点登录交付件和源码
到此cas的server测试成功!!