`
AngelAndAngel
  • 浏览: 233210 次
  • 性别: 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  文件啊

相关推荐

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

    标题中的“tomcat配置ssl-单点登录(sso)”指的是在Apache Tomcat服务器上配置SSL安全套接层,以及实现单点登录(Single Sign-On, SSO)功能。这是一个涉及网络安全和用户认证的重要主题,主要目标是提高Web应用的...

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

    **CAS 单点登录原理与实现** ...通过以上步骤,你可以实现CAS单点登录,并在Tomcat服务器上配置SSL,确保通信安全。同时,正确集成CAS资源,能够让你的应用系统无缝接入CAS认证体系,提升用户体验。

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

    CAS作为一个开源的Web应用程序认证框架,为多种平台提供了轻量级的单点登录解决方案。 CAS的主要特点是其分层架构,包括独立部署的CAS Server和与各个应用集成的CAS Client。CAS Server负责统一的用户身份验证,而...

    CAS单点登录配置

    在提供的PDF文件`cas单点登录(一).pdf`和`cas单点登录(二).pdf`中,应该详细涵盖了这些步骤,以及更深入的技术细节,包括可能出现的问题和解决方案。通过学习这些文档,你应该能够成功地配置和实施CAS单点登录...

    Tomcat 下用cas实现单点登录

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

    cas单点登录(tomcat)

    描述中的“写的挺细”暗示了文档内容可能包含了详细的步骤和解释,这意味着我们将深入探讨如何在Tomcat环境下配置和实现CAS单点登录。 **单点登录(SSO)** 单点登录是网络环境中的一种安全机制,用户只需要一次...

    CAS单点登录配置大全

    **CAS单点登录配置大全** CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源单点登录(Single Sign-On,SSO)协议。它允许用户通过一个统一的认证系统访问多个应用系统,而无需在每个系统...

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

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

    基于cas的sso 单点登录tomcat配置过程

    单点登录(Single Sign-On,简称SSO)是一种网络访问控制机制,允许用户在一次登录后,无需再次认证即可访问多个相互信任的应用系统。CAS(Central Authentication Service)是耶鲁大学开发的一个开源SSO项目,它...

    CAS单点登录demo

    在本“CAS单点登录demo”中,我们将深入探讨CAS的工作原理、配置步骤以及如何实现客户端与服务器端的交互。 1. CAS工作原理: CAS的核心思想是集中式的身份验证,用户只需在一个地方进行登录,之后访问其他已经...

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

    ### 使用CAS在Tomcat中实现单点登录的关键知识点 #### 一、CAS简介与特性 - **CAS**(Central Authentication Service)是由耶鲁大学发起的一个开源项目,它为Web应用程序提供了一种简单可靠且功能强大的单点登录...

    CAS 单点登录配置说明

    总结,CAS单点登录配置涉及SSL安全设置、CAS服务器的部署、客户端应用的集成以及证书的管理等多个环节。理解并掌握这些知识点,对于构建安全、便捷的多应用系统环境至关重要。希望本文提供的信息对您在配置CAS单点...

    解决tomcat配置ssl错误的解决办法

    解决 Tomcat 配置 SSL 错误的解决办法 在 Tomcat 服务器中配置 SSL 加密连接是非常重要的,然而在 Tomcat 6.0.33 版本中,默认启用了 APR(APR 是通过 JNI 访问的可移植库,可以提高 Tomcat 的性能和伸缩性),这...

    CAS多数据库配置单点登录

    三、CAS单点登录配置 为了实现单点登录,需要在CAS服务器端进行相应的配置。下面将详细介绍CAS服务器端配置的步骤: 1. 配置CAS服务器端 在CAS服务器端,需要配置单点登录的服务端口、服务器名称和认证方式等。 ...

    tomcat SSL的配置

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

    CAS单点登录配置全过程

    ### CAS单点登录配置全过程详解 #### 一、前言 CAS(Central Authentication Service)是一种开放源代码的单点登录(Single Sign-On, SSO)协议和服务实现,它允许用户在一个应用登录之后无需再次登录即可访问其他...

    CAS单点登录服务器配置详情

    ### CAS单点登录服务器配置详解 #### 一、CAS单点登录概述 CAS(Central Authentication Service)是一种开放源代码的单点登录协议和服务框架,它为Web应用提供了一种简化了的身份验证流程。通过CAS,用户只需要在...

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

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

Global site tag (gtag.js) - Google Analytics