CAS单点登录
1、 环境
Windows7、tomcat7、jdk8
配置host文件:
127.0.0.1 hxy.hxyframe.com
2、 下载
a) 服务端:http://developer.jasig.org/cas/
3、 创建证书
keytool-genkey -alias ktc -keyalg RSA -keysize 2048 -keypass 123456 -storepass 123456 -validity 36500 -keystore/usr/local/casTomcat8/conf/ktc.keystore -dname "CN=ktc.hxyframe.com,OU=ktc.com,O=ktc,L=ShenZhen,ST=ShenZhen,C=CN"
注意:别名密码什么的都可以改,需要指出的是:
-validity 36500:有效期100年(可不加,默认为90天)
CN= ktc.hxyframe.com这段内容,后边配置客户端的时候需要用到,一定要确保能通过这个域名访问到你的CAS服务端。
并且不能使用IP作为域(上文的CN),使用IP虽然可以生成keystore,但是在客户端使用的时候,如果服务端地址配置成IP会报错。
【说明】:-alias后面的别名可以自定义,-keypass指定证书密钥库的密码, -storepass和前面keypass密码相同,否则下面tomcat 配置https 会访问失败 -keystore指定证书的位置,这里指定放在D盘keys目录,密钥库名称可以自定义,这里是tanlijun.keystore 3. 命令输入完成,
查看证书命令:(下面命令为查看cas的证书)
keytool -list -v -alias ktc -keystore
"C:/Program Files/Java/jdk1.8.0_91/jre/lib/security/cacerts" -storepass changeit
删除证书命令:(下面命令为删除cas的证书)
keytool -delete -alias ktc -keystore
"C:/Program Files/Java/jdk1.8.0_91/jre/lib/security/cacerts" -storepass changeit
如果是生产环境,需要去网上购买证书,网址:http://www.verisign.com/cn/
4、导出证书
keytool -export -file /usr/local/casTomcat8/conf/ktc.crt-alias ktc -keystore /usr/local/casTomcat8/conf/ktc.keystore
输入密码,完成导出
【说明】:-alias后面的名称要与生成证书的命令里面的alias的名称一致. –keystore后面指定证书存放的位置,这里我放在D盘keys目录,同时证书名称要与【生成证书】对应的命令里的keystore名称一致.这里是tanlijun.keystore,-file后面才crt路径,我也指定在D盘keys目录. –storepass的证书密码要与上面输入的密码一致.
5、将证书导入到jre中(cas客户端,本地是windows)
keytool -import -alias ktc -keystore "C:/Program Files/Java/jdk1.8.0_91/jre/lib/security/cacerts"-file "D:/keys/ktc.crt" -trustcacerts
出现以上信息,则表示证书导入成功。如果显示密码错误时,可以使用默认密码:changeit
7、配置tomcat
打开tomcat的配置文件service.xml。找到8443端口,去掉注释,配置Connector属性。如下所示:
<Connector port="8443"protocol="HTTP/1.1"
maxThreads="150" SSLEnabled="true"scheme="https" secure="true"
keystoreFile="conf/ktc.keystore"keystorePass="123456" clientAuth="false"sslProtocol="TLS"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
TLS_ECDHE_RSA_WITH_RC4_128_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA256,
TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_256_CBC_SHA256,
TLS_RSA_WITH_AES_256_CBC_SHA,
SSL_RSA_WITH_RC4_128_SHA">
</Connector>
不配置ciphers的话,浏览器会报协议错误。
其中,keystoreFile就是创建证书的路径,keystorePass就是创建证书的密码。启动,测试:https://localhost:8443/
8、部署服务端
将hxyFrame的frame-casServer 部署到tomcat中,以cas命名作为访问路径。
数据库连接配置:
在WEB-INF下面找到cas.properties文件,打开文件,设置jdbc信息:(此处可以设置多方sql或nosql中间件,前提是该功能)
启动tomcat。访问https://hxy.hxyframe.com:8443/cas/login登录。使用数据库中的用户名和密码登录。
9、普通方式部署client端
创建2个client端:
cas_client1:http://127.0.0.1:8085/casClient1
cas_client2: http://127.0.0.1:8086/casClient2
普通方式的cas配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!-- 用于实现单点登出功能 可选-->
<listener>