`
AngelAndAngel
  • 浏览: 230499 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多
CAS单点登录需要tomcat配置ssl认证,配置方式如下:
        1,dos进入进入tomcat安装路径的bin目录,输入
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。它里面有一段屏蔽的代码如下
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"   
               maxThreads="150" scheme="https" secure="true"   
               clientAuth="false" sslProtocol="TLS" />

改变如下:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
               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文件中配置数据源
 
 <bean id="casDataSource" class="org.apache.commons.dbcp.BasicDataSource">
     <property name="driverClassName">
          <value>com.mysql.jdbc.Driver</value>
     </property>
     <property name="url">
          <value>jdbc:mysql://localhost:3306/test??useUnicode=true&amp;characterEncoding=utf8</value>
     </property>
     <property name="username">
          <value>root</value>
     </property>
     <property name="password">
          <value>root</value>
     </property>
</bean>
很明显,是spring实现。

AuthenticationHandler是个很重要的概念,表明你验证处理的方式,默认的是使用SimpleTestUsernamePasswordAuthenticationHandler,我们可以改这个注入的类,比如QueryDatabaseAuthenticationHandler或者SearchModeSearchDatabaseAuthenticationHandler。前者可用sql来查询,后者的方式如下:
<bean id="SearchModeSearchDatabaseAuthenticationHandler" class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler"
                      abstract="false" lazy-init="default"   autowire="default" dependency-check="default">
					    <property  name="tableUsers">
                              <value>userinfo</value>
                        </property>
                        <property name="fieldUser">
                              <value>userName</value>
                        </property>
                        <property name="fieldPassword">
                              <value>password</value>
                        </property>
                        <property name="dataSource" ref="casDataSource" />
               </bean>
即给出表和表中代表帐号密码的字段,来匹配。这个时候启动,并输入你的帐号密码,可以提示成功或失败。

         6,客户端程序(java web) ,你只需要把web.xml配置一下,如下:
<filter>

		<filter-name>CAS Filter</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://casserver:8443/cas/login</param-value>

		</init-param>

		<init-param>

			<param-name>
				edu.yale.its.tp.cas.client.filter.validateUrl
			</param-name>

			<param-value>
				https:// casserver:8443/cas/serviceValidate
			</param-value>

		</init-param>

		<init-param>

			<param-name>
				edu.yale.its.tp.cas.client.filter.serverName
			</param-name>

			<param-value>computerTest:8080</param-value>

		</init-param>

		<init-param>

			<param-name>
				edu.yale.its.tp.cas.client.filter.wrapRequest
			</param-name>

			<param-value>true</param-value>

		</init-param>

	</filter>

	<filter-mapping>

		<filter-name>CAS Filter</filter-name>

		<url-pattern>/test/*</url-pattern>

	</filter-mapping>
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
分享到:
评论
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  文件啊

相关推荐

    CAS 单点登录,tomcat配置SSL,及资源

    CAS,单点登录,tomcat配置SSL,cas资源

    使用CAS在Tomcat中实现单点登录

    CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,对于采用 CAS 实现轻量级单点登录解决方案的入门读者具有一定指导作用。

    Tomcat 下用cas实现单点登录

    Tomcat 下用cas实现单点登录,实现系统整合。

    tomcat配置ssl-单点登录(sso).rar

    这个文档是经过我将近两个星期的研究,证实了其中文档的真实性和可用性,只要你跟着文档里面的步骤配置和实施,绝对实现cas单点登录(sso),包括跨域访问cas

    基于Java集成CAS单点登录【接部署即可启用】

    基于Java中CAS的单点登录,有服务端的所有源码,将tomcat目录下的所有资源直接拷到Tomcat服务中间件的webapp目录下,阅读tomcat-webapp中的read.txt文档,查看使用说明,适用于第一次开发CAS单点登录的同学们,简单...

    tomcat SSL的配置

    第四步:配置Tomcat服务器 打开Tomcat根目录下的/conf/server.xml,找到如下配置段,修改如下: maxThreads="150" scheme="https" secure="true" clientAuth="true" sslProtocol="TLS" keystoreFile="C:/tmp...

    使用 CAS 在 Tomcat 中实现单点登录

    使用 CAS 在 Tomcat 中实现单点登录

    cas单点登录技术

    1 单点登录总体解决方案 2 CAS原理和协议 3 CAS安全性 4 CAS工作模式 5 系统设计方案 6 CAS关键技术 6.1 域名规范 6.2 中文用户登录提交时乱码 ...7 单点登录风险 ...9.3 TOMCAT中使用CAS实现单点登录LDAP方式

    cas单点登录(tomcat)

    tomcat,cas单点登录 写的挺细。

    Tomcat5.5配置SSL

    Tomcat5.5配置SSL Tomcat5.5配置SSL Tomcat5.5配置SSL Tomcat5.5配置SSL

    使用CAS在Tomcat中实现单点登录参考代码及配置

    使用CAS在Tomcat中实现单点登录参考代码及配置详细文档

    CAS单点登录demo

    CAS单点登录的详细讲解文档,所需jar包和tomcat6,CAS Server和CAS Client

    关于tomcat 的ssl配置

    关于tomcat 的ssl配置,

    tomcat7单双向SSL配置

    tomcat7单双向SSL配置,本人亲测,并附有截图代码

    CAS单点登录

    cas单点登录war包,可以直接放到tomcat下面webapps

    CAS单点登录(SSO)教程

    CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,对于采用 CAS 实现轻量级单点登录解决方案的入门读者具有一定指导作用。

    java-cas单点登录服务端

    CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,研究如何采用 CAS 实现轻量级单点登录解决方案。 CAS 是 Yale 大学发起的...

    tomcat配置单点登录

    tomcat实现单点登录,SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。

    cas单点登录war包

    cas单点登录war包放到tomcat下面直接启动tomcat便可使用

Global site tag (gtag.js) - Google Analytics