keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -
keystore server.keystore -validity 3600。此时会在bin下面生成一个
server.keystore文件。Validity代表天数。在接下来会让你填写姓名,其实就是你服务器的域名,注意,这里用ip是不行的,需要用服务器域名或者计算机全名。其他可以随便填写。
2,继续输入keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass changeit,导出证书,会在bin下面生成一个server.cer文件。
有了证书后,需要将它导入到jdk证书信任库,继续输入 keytool -import -trustcacerts -alias tomcat -file server.cer -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit。也就是说要在cacerts里面添加一个这样的证书,可以通过下面的命令得到证书信任列表: keytool -list -v -keystore D:/sdks/jdk1.5.0_11/jre/lib/security/cacerts。注意一点就是,我们一般把jdk放在C:\Program Files\java下,我试了一下不行,可能是有空格的原因,我的是直接放在c盘下的java文件夹中。当然也可以删除导入的证书,命令:keytool -delete -alias tomcatsso -keystore cacerts -keypass changeit假如提示密码 默认是changeit。
3,最后修改tomca conf下的server.xml。它里面有一段屏蔽的代码如下
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
改变如下:
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystorePass="changeit" keystoreFile="D:\apache-tomcat-6.0.26\bin\server.keystore"
/>这里注意的就是keystoreFile是你刚才生成的server.keystore。还就是protocol需要改成Http11Protocol的,不然会报错(网上有的是没有改的,但是不改我这里报错,改就好)。
4,最后启动https://localhost:8443/,可以看到浏览器地址栏有警告窗口,说明ssl配置成功。
5,然后需要cas的服务器和客户端 下载地址分别是:
http://www.ja-sig.org/downloads/cas/cas-server-3.1.1-release.zip
http://www.ja-sig.org/downloads/cas-clients/cas-client-java-2.1.1.zip
解压server包,把modules文件夹里面的cas-server-webapp-3.1.1.war 改名cas.war放入tomcat的下面,启动浏览,会出现server的界面,部署成功了。
一般的我们会把帐号密码放在数据库中,那么需要在webinf下面的deployerConfigContext文件中配置数据源
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/test??useUnicode=true&characterEncoding=utf8
root
root
很明显,是spring实现。
AuthenticationHandler是个很重要的概念,表明你验证处理的方式,默认的是使用SimpleTestUsernamePasswordAuthenticationHandler,我们可以改这个注入的类,比如QueryDatabaseAuthenticationHandler或者SearchModeSearchDatabaseAuthenticationHandler。前者可用sql来查询,后者的方式如下:
abstract="false" lazy-init="default" autowire="default" dependency-check="default">
userinfo
userName
password
即给出表和表中代表帐号密码的字段,来匹配。这个时候启动,并输入你的帐号密码,可以提示成功或失败。6,客户端程序(java web) ,你只需要把web.xml配置一下,如下:
CAS Filter
edu.yale.its.tp.cas.client.filter.CASFilter
edu.yale.its.tp.cas.client.filter.loginUrl
https://casserver:8443/cas/login
edu.yale.its.tp.cas.client.filter.validateUrl
https:// casserver:8443/cas/serviceValidate
edu.yale.its.tp.cas.client.filter.serverName
computerTest:8080
edu.yale.its.tp.cas.client.filter.wrapRequest
true
CAS Filter
/test/*
Casserver 代表服务器程序的计算机名或者域名。
computerTest代表客户端程序的计算机名或者域名。上面的代表cas服务器。显然,cas是通过过滤器保护你的资源。
7,一般情况下,我们几乎不能保证你需要继承的系统都是在一个服务器上,假如对于分布在多个机器上的项目,有几点需要注意,一是你必须保证你cas服务器所在的机器能够用计算机名(或域名访问到)(不能的话另见局域网内不能通过计算机名访问的解决办法.doc)。二是,在客户端服务器(tomcat)中也需要配置ssl,配置方法就是把上面生成的证书导入到jdk中,并且要和cas服务器进行ssl握手,握手方式如下:java InstallCert casserver:8443,接下来的选择项中输入1,搞定。
以上是今天研究的一点成果,特别是配置的时候有种让人抓狂的感觉,感觉有点凌乱,但是按照这个步骤搞,肯定是没什么问题的。
By 阿飞哥 转载请说明
腾讯微博:http://t.qq.com/duyunfeiRoom
新浪微博:http://weibo.com/u/1766094735
3
顶
0
踩
分享到:
2011-06-17 16:01
浏览 4725
评论
8 楼
清林小篆
2017-06-06
引用
[/col
[size=xx-small][/size]or]ggggggg[color=cyan]
7 楼
vahoa.ma
2015-07-29
第6步,客户端程序(java web)使用方法及配置说清楚点啊。你说的含糊其辞的。
6 楼
vahoa.ma
2015-07-29
师兄,那个客户端怎么用呢?
5 楼
xiaobadi
2014-10-18
4 楼
AngelAndAngel
2012-05-25
唔系好人 写道
-export导出的时候有问题
有什么问题?
3 楼
唔系好人
2012-05-25
-export导出的时候有问题
2 楼
AngelAndAngel
2011-12-07
ningwuyu 写道
tomcat中不能生成 server.keystore 文件啊
不是tomcat生成的 是jdk生成后 tomcat引用地址
1 楼
ningwuyu
2011-12-07
tomcat中不能生成 server.keystore 文件啊