tomcat sso 配置
源: http://www.oecp.cn/hi/single/blog/349
为了实现单点登录,做了个CAS SSO单点登录实例,经过反复的琢磨和修改终于成功了,现将CAS SSO单点登录实例详细步骤共享出来,供大家参考。
首先要先下载
www.ja-sig.org/downloads/cas/cas-server-3.0.4.zip
www.ja-sig.org/downloads/cas-clients/cas-client-2.0.11.zip
CAS SSO单点登录实例详细步骤:
1、用keytool生成证书:
keytool -genkey -alias tomcat -keyalg RSA -keystore c:/Tomcat5.5/mykey
说明:
这里-alias tomcat 是表示生成的这个证书的别名叫tomcat,-keyalg RSA 指的是采用的RSA算法,-keystore c:/Tomcat5.5/mykey是指生成的证书存储的位置。回车后会提示你输入keystore password,这可以自己定(这里输入12456,下面配tomcat时要用的),然后是一些个人信息及组织信息,可以轻松搞定。
注意:密码输入后,会让你输入其他信息,记得这里第一个姓名必须是服务器的域名 由于我是在本机所以是localhost
这里要注意如果不这样写就会报如下异常:
java.io.IOException: HTTPS hostname wrong: should be <localhost>
2、创建证书后,就导出证书,keytool -export -file c:\cas.cer -alias tomcat -keystore C:\Tomcat5.5\mykey(从C:\Tomcat5.5\mykey里取出证书入到C:\下,如果没有指定,就是在用下目录下C:\Documents and Settings\用户目录名\)
3、server.xml中添加的配置信息:
< Connector port="8443"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="C:\tomcat\mykey(指生成的证书存储的位置)" keystorePass="123456"(上面你输入的那个密码) />
4、把上面那步的(csa.cer)这个证书导入java中的cacerts证书库里?
开始 >> 运行 >> 输入cmd 进入dos命令行 >>
再用cd进入到C:\Program Files\Java\jdk1.5.0_05\jre\lib\security这个目录下
敲入如下命令回车执行
keytool -import -alias cacerts -keystore cacerts -file C:\cas.cer -trustcacerts
此时命令行会提示你输入cacerts证书库的密码,
你敲入changeit就行了,这是java中cacerts证书库的默认密码,
你自已也可以修改的。
如果报错信息是已经存在tomcat证书,就执行:
keytool –delete –keystore cacerts
–file C:\cas.cer –alias -trustcacerts
5、重启Tomcat后在地址栏输入:https://localhost:8888 如果配置正确就搞定了,浏览显示的时候提示安装证书(你就选择安装上面导出的那个证书,也可从IE--工具--Internet首选项--内容--证书--然后按提示导入即可)。
如果是IE的话,首先会弹出一个对话框,提示你证书不是由信任的机构颁发的。这个是很自然的,因为证书是自己生成的。
单击“查看证书”,单击“安装证书”,在向导种选择“将所有的证书放在下面存储区”,然后单击“浏览”,选择“受信任的根证书颁发机构”。单击确定安装证书。这样IE以后就会认为证书是由受信任的机构颁发的。
如果不想安装,也可以直接在对话框中单击“是”
6 部署CAS应用
解压 cas-server-3.0.4.zip, 提取 \target\cas.war 文件,将 cas.war 文件复制到 TOMCAT 的安装路径 webapps 下,启动 TOMCAT ,检查 CAS 应用是否正常启动。
7.客户端配置
下载cas-client-2.0.11.zip
把 java/lib/casclient.jar考到 你所发布的webapp的WEB-INF/lib下
修改WEB-INF/web.xml 在里面添加过滤器
<filter>
<filter-name>CASFilter</filter-name>
<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
<param-value>https://localhost:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://localhost:8443/cas/proxyValidate</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>localhost:8443</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
把里面的localhost换成域名
8443换成你所使用的端口
====================================
JDK中keytool常用命令
-genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
-alias 产生别名
-keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中
-keyalg 指定密钥的算法
-validity 指定创建的证书有效期多少天
-keysize 指定密钥长度
-storepass 指定密钥库的密码
-keypass 指定别名条目的密码
-dname 指定证书拥有者信息 例如: "CN=sagely,OU=atr,O=szu,L=sz,ST=gd,C=cn"
-list 显示密钥库中的证书信息 keytool -list -v -keystore sage -storepass ....
-v 显示密钥库中的证书详细信息
-export 将别名指定的证书导出到文件 keytool -export -alias caroot -file caroot.crt
-file 参数指定导出到文件的文件名
-delete 删除密钥库中某条目 keytool -delete -alias sage -keystore sage
-keypasswd 修改密钥库中指定条目口令 keytool -keypasswd -alias sage -keypass .... -new .... -storepass ... -keystore sage
-import 将已签名数字证书导入密钥库 keytool -import -alias sage -keystore sagely -file sagely.crt
导入已签名数字证书用keytool -list -v 以后可以明显发现多了认证链长度,并且把整个CA链全部打印出来。
1.证书的显示
-list
[-v | -rfc] [-alias <alias>]
[-keystore <keystore>] [-storepass <storepass>]
[-storetype <storetype>] [-provider <provider_class_name>]
例如:keytool -list -v -alias RapaServer -keystore cacerts -storepass 12345678
keytool -list -v -keystore d2aapplet.keystore -storepass 12345678 -storetype IAIKKeystore
2.将证书导出到证书文件
例如:keytool -export -keystore monitor.keystore -alias monitor -file monitor.cer
将把证书库 monitor.keystore 中的别名为 monitor 的证书导出到 monitor.cer 证书文件中,它包含证书主体的信息及证书的公钥,不包括私钥,可以公开。
keytool -export -keystore d2aApplet.keystore -alias RapaServer -file Rapa.cert -storetype IAIKKeystore
3.将keystore导入证书中
这里向Java默认的证书 cacerts导入Rapa.cert
keytool -import -alias RapaServer -keystore cacerts -file Rapa.cert -keystore cacerts
4.证书条目的删除
keytool的命令行参数 -delete 可以删除密钥库中的条目,如: keytool -delete -alias RapaServer -keystore d2aApplet.keystore ,这条命令将 d2aApplet.keystore 中的 RapaServer 这一条证书删除了。
5.证书条目口令的修改
使用 -keypasswd 参数,如:keytool -keypasswd -alias RapaServer -keystore d2aApplet.keystore,可以以交互的方式修改 d2aApplet.keystore证书库中的条目为 RapaServer 的证书。
Keytool -keypasswd -alias RapaServer -keypass 654321 -new 123456 -storepass 888888 -keystore d2aApplet.keystore这一行命令以非交互式的方式修改库中别名为 RapaServer 的证书的密码为新密码 654321,行中的 123456 是指该条证书的原密码, 888888 是指证书库的密码。
CAS SSO单点登录实例就到这里了,希望对大家有帮助!
tomcat sso 配置的更多相关文章
- Tomcat之配置HTTPS
1. 在C:\Windows\System32\drivers\etc\hosts文件中新增一条项目web.demo.com,让Tomcat可以通过域名访问: 127.0.0.1 web.demo.c ...
- 关于tomcat文件下载配置
前言 tomcat文件下载 关闭tomcat目录列表浏览功能 Tomcat 不能下载带中文文件名的附件的方法 在Java Web项目中文件下载是一个很常见的功能,最近在做项目中发现可以通过tomcat ...
- 在tomcat中配置jdk的不同版本
在tomcat中配置jdk的不同版本---------------------------------------------------------------------------------- ...
- Tomcat安装配置
Tomcat安装配置 很久没有通过博客对学习所得进行记录了. 现在将使用Tomcat的一些经验和心得写到这里,作为记录和备忘.如果有朋友看到,也请不吝赐教. 1.首先是Tomcat的获取和安装. 获取 ...
- 腾讯云服务器centos 6.5(jdk+tomcat+vsftp)、腾讯mysql数据库 及 tomcat自启动 配置教程
1.腾讯云数据库配置 1.考虑到安全性问题,,平常不使用root用户登录,新增一个用户名neil,用来管理项目的数据库 a.首先登录root创建db_AA数据库 b.在root用户下,创建neil用户 ...
- [转载]JavaEE学习篇之——网络传输数据中的密码学知识以及Tomcat中配置数字证书EE
原文链接:http://blog.csdn.net/jiangwei0910410003/article/details/21716557 今天是学习JavaWeb的第二天,我们来了解什么呢?就了解一 ...
- Tomcat环境配置部署测试环境及架构
Tomcat环境配置已经在前面介绍过了,这边就为童鞋们介绍下对于Tomcat的架构是怎么样的! Tomcat的架构包含(bin.conf.lib.logs.temp.wenapps.work)等文件夹 ...
- JDK+MyEclipse+Tomcat的配置(修改Tomcat 6.x的端口)
修改tomcat的端口,在conf目录里的server.xml文件 例如想将端口修改为8080则将port的值修改为8081,其余值不变 通过Tomcat服务器访问 想通过浏览器访问这个页面,需要在T ...
- 转:Tomcat安装配置及站点说明
原文地址:http://www.cnblogs.com/Johness/archive/2012/07/20/2600937.html 1.首先是Tomcat的获取和安装. 获取当然得上Apache的 ...
随机推荐
- Kubernetes1.6集群上(开启了TLS)安装Dashboard
本节内容: 配置dashboard 执行所有定义的文件 检查执行结果 访问dashboard 这是接着上一篇<二进制方式部署Kubernetes 1.6.0集群(开启TLS)>写的.Kub ...
- bms_output.put_line使用方法
https://blog.csdn.net/sxww321/article/details/4020300
- python和redis简单交互
python和redis简单交互 1.安装redis模块 pip3 install redis 2.redis模块简单使用: # /usr/bin/env python3 import redis c ...
- LINUX 下挂载 exfat 格式 u 盘或移动硬盘
apt-get update apt-get install exfat-utils
- 如何保证Redis中的数据都是热点数据
redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略.redis 提供 6种数据淘汰策略:volatile-lru:从已设置过期时间的数据集(server.db[i].expires) ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...
- 线性表之单链表C++实现
线性表之单链表 一.头文件:LinkedList.h //单链表是用一组任意的存储单元存放线性表的元素,这组单元可以是连续的也可以是不连续的,甚至可以是零散分布在内存中的任意位置. //单链表头文件 ...
- BZOJ 3572: [Hnoi2014]世界树 虚树 树形dp
https://www.lydsy.com/JudgeOnline/problem.php?id=3572 http://hzwer.com/6804.html 写的时候参考了hzwer的代码,不会写 ...
- bzoj 3252: 攻略
3252: 攻略 Description 题目简述:树版[k取方格数] 众所周知,桂木桂马是攻略之神,开启攻略之神模式后,他可以同时攻略k部游戏. 今天他得到了一款新游戏<XX半岛>, ...
- Problem A: 象棋比赛
Description 1月6日,教职工象棋协会在6号楼办了一次比赛,很多老师都参加了.比赛共进行了5轮,赢1局积3分,和了1分,输了0分,你能帮忙算一下各位老师的积分吗? Input 多组测试数据, ...