目录简介 ...........................................................................................................11.1 tomcat 的配置 .....................................................................................21.2 nginx 的配置 .......................................................................................71.3 tomcat session 共享 ..........................................................................121.5 ticket 共享 .........................................................................................14简介cas 的集群主要分为两部分,一是 session 的集群,二是登录之后产生的 ticket 的集群。
对于 cas ticket 集群,目前测试通过的是 memcached ticket repository对于 tomcat 的 session复制及会话粘性的方法有如下方案: memcached-session-mamanger 方式集群环境:1. nginx 最新版本:1.8.1 支持 https2. 2 个 tomcat 版本:7tomcat1:192.168.1.100:8081 tomcat2:192.168.1.100:80823. memcached 最新版本:1.4.134. session 复制同步使用 memcache-session-manager 最新版本:1.6.35. ticket 共享使用的 memcached ticket repository6.系统:windows7(一台机器)1.1 tomcat 的配置1、部署 cas.war 包下载包cas-server-3.5.2.1-release.zip http://downloads.jasig.org/cas/cas-client-3.2.1-release.zip http://downloads.jasig.org/cas-clients/解压 cas-server-3.5.2.1-release.zip 到磁盘(我的路径为 D:\cas-server-3.5.2.1) ,进入 D:\cas-erver-3.5.2.1\modules 文件夹下,把 cas-server-webapp-3.5.2.1.war 拷贝到 Tomcat 安装目录的 webapps 文件夹下。
为了方便在浏览器中浏览,把 cas-server-webapp-3.5.2.1.war 文件名修改为 cas.war2、修改 tomcat 端口,conf 下的 server.xml 有三处要修改第一处:第二处:第三处:3、启动 tomcat,进入 bin 目录下,双击 startup.bat 文件启动4、停止 tomcat,对 cas 数据库连接和取消 https 进行配置第一,配置数据库连接方式:(1)复制 D:\cas-server-3.5.2.1\modules 下面 cas-server-support-jdbc-3.5.2.1.jar 到$TOMCAT_HOME$\webapps\cas\WEB-INF\lib 下数据库为 Oracle,因此把 Oracle 驱动包也复制到 lib 文件夹下ojdbc14.jar (2) 打开$TOMCAT_HOME$\webapps\cas\WEB-INF\deployerConfigContext.xml 文件,在 beans标签里面最后的位置添加如下配置信息:oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@127.0.0.1:1521:orcl ibusscreen 123456 MD5 (3)删除 SimpleTestUsernamePasswordAuthenticationHandler bean,添加自己的 sql第二,取消 httpsCAS 取消 HTTPS 验证之后则可以使用 HTTP 协议进行 CAS 服务器和 Client 之间单点登录,安全性低,CAS 不建议这样做,但是若在局域网内部使用的话,但用无妨。
集群环境证书加载 nginx 端,后端不需要加证书1 )修改 cas server 下\WEB-INF\deployerConfigContext.xml 文件增加参数 p:requireSecure="false",是否需要安全验证,即 HTTPS,false 为不采用2 )修改 cas server 下\WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml文件Defines the cookie that stores the TicketGrantingTicket. You most likely should nevermodify these (especially the "secure" property).You can change the name if you want to make it harder for people to guess.参数 p:cookieSecure="true", TRUE 为采用 HTTPS 验证,与 deployerConfigContext.xml 的参数保持一致。
3 )修改 cas server 下\WEB-INF\spring-configuration\warnCookieGenerator.xml 文件两个参数与上面同理5、所有都配置好之后,启动 tomcat在浏览器上输入 http:// :8081/cas(注意:sso 必须使用域名,这里使用的是 ,本地测试可以在 hosts 文件中添加此域名映射),输入用户名和密码登录进去到此 cas 服务器搭建完成该登录页面可以根据实际情况修改成项目中所需要的tomcat1 配置完成后,tomcat2 也需要做同样的配置,注意两个 tomcat 端口不一样这里配置的是 :8081 和 :80821.2 nginx 的配置1、配置负载均衡修改 conf/nginx.conf 文件配置好之后,双击 nginx.exe 启动为了测试,将两个 tomcat 下的 cas 登录页面用 1 和 2 区分下,修改$TOMCAT_HOME$/webapps/cas/WEB-INF/view/jsp/default/ui/casLoginView.jsp然后在浏览器输入 nginx 是随意分配请求到 tomcat1 和 tomcat22、 ssl 配置(1 )安装 openssl,双击 Win32OpenSSL-0_9_8l.exe 进行安装,按照提示一步一步安装(2 )生成证书以管理员省份进入 dos 系统,进入 openssl 安装目录下的 bin 目录中:a、openssl genrsa -des3 -out server.key 1024b、openssl req -new -key server.key -out server.csr c、openssl rsa -in server.key -out server_nopass.keyd、openssl req -new -x509 -days 3650 -key server_nopass.key -out server.crt第一个文件会提示设个密码,必须是 4 位,后面会用到这个密码。
第二个文件需要提供一些参数,像国家、省市、公司、域名等总共会生成四个文件具体命令使用方法可以百度3 )修改 nginx.confconf 下的 nginx.conf 文件编辑:把 HTTPS server 注释部分释放出来# HTTPS server server {listen 443 ssl;server_name ;ssl on;ssl_certificate server.crt;ssl_certificate_key server_nopass.key;# ssl_session_cache shared:SSL:1m;# ssl_session_timeout 5m;# ssl_ciphers HIGH:!aNULL:!MD5;# ssl_prefer_server_ciphers on;location / {proxy_connect_timeout 3;proxy_send_timeout 30;proxy_read_timeout 30;proxy_pass ;proxy_redirect default;}}(4)启动 nginx,浏览器输入 tomcat session 共享1、 memcached 安装在 CMD 下 输 入 "memcached.exe -d install" 安 装安装成功之后,memcached 将作为 windows 的一个服务每次开机时自动启动。
默认端口:11211 在服务里找的 memcached 服务,点启动服务2、 jar 包添加停止 tomcat 服务,将下列 jar 添加到 TOMCAT 安装目录下的 lib/中注意:memcached-session-manager-tc6-1.6.3.jar 和 memcached-session-manager-tc7-1.6.3.jar分别对应 tomcat6 和 tomcat73、 修改文件$TOMCAT_HOME$/conf/context.xml(两个 tomcat 中的都需要修改),在 Context标签中加入如下代码://序列化类1.5 ticket 共享 1.找到 cas/webapp/WEB-INF/spring-configuration/ticketRegistry.xml 原始文件(cas 发布默认配置)2.将 改为3.增加4.删除虽然 memcached 节点的 ticket 会过期,但是过期的 ticket 的处理由 memcached 服务器节点自己完成的,所以不需要配置 ticket cleaner5、 beans 标签换成下面的这段6.增加 jar,将 jar 包添加到 cas/WEB-INF/lib 下cas-server-integration-memcached-3.5.2.jarspymemcached-xxx.jarkryo-xxx.jarmockito-core-xxx.jartomcat2 也要做同样的配置7、最后,启动服务。