最近学习了一下CAS SSO方面的东西,整合了CAS 在TOMCAT 下面运行。下面介绍整合步骤
1 下载服务端CAS运行WAR 下载cas-server-webapp-3.3.2.war
2 下载客户端JAR casclient-2.1.1.jar 3.配置服务器端的数字证书 1.生成数字证书
keytool -genkey -alias zhouhui -keyalg RSA
2.导出数字证书
keytool -export -alias zhouhui -file server.crt
3.将数字证书导入jre的可信区
keytool -import -trustcacerts -alias zhouhui -file server.crt -keystore %java_home%/jre/lib/security/cacerts
其他的一些命令:
查看可信证书列表(检查证书是否加入成功)
./keytool -list -keystore ../jre/lib/security/cacerts
常用命令:
-genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
-alias 产生别名
-keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中
-keyalg 指定密钥的算法
-validity 指定创建的证书有效期多少天
-keysize 指定密钥长度
-storepass 指定密钥库的密码
-keypass 指定别名条目的密码
-dname 指定证书拥有者信息例如: "CN=firstName,OU=org,O=bj,L=bj,ST=gd,C=cn"
-list 显示密钥库中的证书信息 keytool -list -v -keystore 别名 -storepass ....
-v 显示密钥库中的证书详细信息
-export 将别名指定的证书导出到文件 keytool -export -alias 别名 -file 文件名.crt
-file 参数指定导出到文件的文件名
-delete 删除密钥库中某条目 keytool -delete -alias 别名 -keystore sage
-keypasswd 修改密钥库中指定条目口令 keytool -keypasswd -alias 别名 -keypass .... -new .... -storepass ... -keystore 别名
-import 将已签名数字证书导入密钥库 keytool -import -alias 别名 -keystore 证书名-file 文件名(可以加.crt 后缀)
操作步骤说明:
运行---CMD---DOS窗口
找到JDK安装的路径下面如我的:D:\software\Java\jdk1.6.0_03
到BIN 目录下会看到keytool.exe
在BIN 目录下执行
keytool -genkey -alias zhouhui -keyalg RSA
生成数字证书
其中alias 后面是数字证书别名 可以输入一个
运行后,执行会提示你输入
主机名或者域名作为证书名称(CN), 填写好后,后面运行的域名就是你填写的那个
如"tomcat" 那么之后你访问的时候就是
后面一路回车就好了,填写入密码changeit
2.导出数字证书
keytool -export -alias zhouhui -file server.crt
3.将数字证书导入jre的可信区
keytool -import -trustcacerts -alias zhouhui -file server.crt -keystore %java_home%/jre/lib/security/cacerts
其中导入的cacerts 是你JDK 环境变量中填写的JDK
如:D:\software\Java\jdk1.6.0_03\jre\lib\security 下面会有cacerts 改写
同时C:\Documents and Settings\Administrator下会有个
.keystore 隐藏文件生成
4.部署程序到TOMCAT 1.讲解压的cas-server-webapp-3.3.2.war复制到tomcat的webapps
2.配置TOMCAT 安全的https
tomcat的conf目录下修改server.xml
打开server.xml
修改
端口为8443 的注释的地方放开
添加 修改为
- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
- maxThreads="150" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS"
- keystoreFile="conf/.keystore" keystorePass="changeit" truststoreFile="D:\software\Java\jdk1.6.0_03\jre\lib\security\cacerts"
- />
其中 keystoreFile="conf/.keystore" 是证书库
keystorePass="changeit" 是证书密码
truststoreFile="D:\software\Java\jdk1.6.0_03\jre\lib\security\cacerts"
是Jre的可信区(是你运行的JDK运行的授信JDK,TOMCAT运行需要的JDK)
3.将之前生成的证书库
C:\Documents and Settings\Administrator\.keystore
复制到TOMCAT conf目录下
4.修改客户端测试代码
修改tomcat 自带的例子webapps\examples
1.复制之前下载的casclient-2.1.1.jar,commons-logging.jar(其他项目中找个一个日子JAR)复制到webapps\examples\lib下面
2.修改 web.xml
webapps\examples 下面修改WEB.XML
- <filter>
- <filter-name>CAS Filterfilter-name>
- <filter-class>edu.yale.its.tp.cas.client.filter.CASFilterfilter-class>
- <init-param>
- <param-name>edu.yale.its.tp.cas.client.filter.loginUrlparam-name>
- <param-value>https://[color=red]tomcat[/color]:8443/cas-server-webapp-3.3.2/loginparam-value>
- init-param>
- <init-param>
- <param-name>edu.yale.its.tp.cas.client.filter.validateUrlparam-name>
- <param-value>https://[color=red]tomcat[/color]:8443/cas-server-webapp-3.3.2/serviceValidateparam-value>
- init-param>
- <init-param>
- <param-name>edu.yale.its.tp.cas.client.filter.serverNameparam-name>
- <param-value>[color=red]tomcat[/color]:8081param-value>
- init-param>
- filter>
- <filter-mapping>
- <filter-name>CAS Filterfilter-name>
- <url-pattern>/servlets/servlet/HelloWorldExampleurl-pattern>
- filter-mapping>
CAS Filter
edu.yale.its.tp.cas.client.filter.CASFilter
edu.yale.its.tp.cas.client.filter.loginUrl
https://[color=red]tomcat[/color]:8443/cas-server-webapp-3.3.2/login
edu.yale.its.tp.cas.client.filter.validateUrl
https://[color=red]tomcat[/color]:8443/cas-server-webapp-3.3.2/serviceValidate
edu.yale.its.tp.cas.client.filter.serverName
[color=red]tomcat[/color]:8081
CAS Filter
/servlets/servlet/HelloWorldExample
其中 tomcat 就是访问的域名
5.修改HOST
c:/windows/system32 下面修改HOSTS
打开 添加
127.0.0.1 tomcat
说明 tomcat 就是之前生成数字证书,中填入的域名
6.发布。
启动tomcat
运行
跳转服务端登录画面,输入用户名 密码跳转 HELLO WORLD 配置成功