tomcat mysql ssl_tomcat ssl配置以及CAS单点登录探究

本文详细介绍了如何配置Tomcat和MySQL的SSL连接,包括使用keytool生成和导入证书,修改Tomcat的server.xml配置,以及设置CAS服务器和客户端,确保SSL安全通信。同时,讨论了CAS客户端的web.xml配置和跨服务器的SSL握手问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2011-06-17 16:01

浏览 4725

评论

8 楼

清林小篆

2017-06-06

引用

[/col

[size=xx-small][/size]or]ggggggg[color=cyan]

f7d8ef7923727bd737bc38b1569bbd07.gif

7 楼

vahoa.ma

2015-07-29

第6步,客户端程序(java web)使用方法及配置说清楚点啊。你说的含糊其辞的。

6 楼

vahoa.ma

2015-07-29

师兄,那个客户端怎么用呢?

5 楼

xiaobadi

2014-10-18

38687d1a1ad71d37c86f287056834d1a.gif 

38687d1a1ad71d37c86f287056834d1a.gif

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  文件啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值