`

【转载】CAS 服务端配置

阅读更多

使用CAS实现单点登陆的相关配置,步骤如下:

1. 配置SSL
   a) 生成证书
   b) 将证书导出为证书文件
   c) 将证书文件导入到java证书库cacerts中
   d) 修改<TOMCAT_HOME>/conf下面得server.xml文件
2. 部署CAS服务器
3. 修改CAS登录的用户库
4. 测试是否配置成功
5. 配置过程中可能会出现的错误

下面就按照上面的步骤详细阐述:
1. 使用SSL
   使用SSL需要使用的java提供的keytool.exe工具,如果配置了java环境变量,可以直接在命令窗口使用,如果没有则学要将目录CD到jdk的bin下。

   a) 生成密钥对
    使用下面的的命令
    keytool -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore
    密码是:changeit
    姓名是:localhost
    其他的提示输入的信息可以随便

    这个命令生成的文件默认在当前目录,即CMD的当前目录C:\Documents and Settings\Administrator(如果没有使用cd命令)。

   b) 将服务器证书导出为证书文件
    使用下面的命令
    keytool -export -alias tomcat -file tomcat.crt -keystore tomcat.keystore
    这里注意一点,导出来的crt证书文件在双击打开的时候可能会看到有红叉在证书上, 这个时候只要按照向导安装完成就可以了。
  
   c) 将证书文件导入到java证书库cacerts中
    将在C:\Documents and Settings\Administrator下的tomcat.crt文件和在C:\Program Files\Java\jdk1.5.0_15\jre\lib\
    (JDK不同位置可能不同)下的security拷贝到c:\下,然后运行下面的命令:
    keytool -import -file c:\tomcat.crt -keystore c:\cacerts -alias tomcat
    然后将cacerts文件拷贝回去,注意备份源文件。
    tomcat.crt可以拷到tomcat_home下,这里为C:\Program Files\tomcat5.5.26。
   
    这里还要注意一点的便是,使用的到底是jdk中的jre还是jre,要将证书导入相应的证书库中。
   
   d) <TOMCAT_HOME>/conf下面得server.xml文件
    打开server.xml文件,定位到
   
    <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
    <!--
    <Connector port="8443" maxHttpHeaderSize="8192"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" disableUploadTimeout="true"
    acceptCount="100" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS"/>
    -->
  
    将下面的注释去掉并加入两个属性:
    keystoreFile="C:\Program Files\tomcat5.5.26\tomcat.keystore"
    keystorePass="changeit"
   
    如下:
    <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
   
    <Connector port="8443" maxHttpHeaderSize="8192"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" disableUploadTimeout="true"
    acceptCount="100" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS" 
   
    keystoreFile="C:\Program Files\tomcat5.5.26\tomcat.keystore"
    keystorePass="changeit"/>
   
    其中keystoreFile指定tomcat.keystore文件的位置,
    keystorePass指定服务器证书文件的密码。

2. 部署CAS服务器的WAR包
将cas-server-3.1.1-release.zip解压缩,把modules文件夹中的cas-server-webapp-3.1.1.war
文件拷贝到<TOMCAT_HOME>/webapps/下,改名为cas(这里的名字只是一种习惯,当然可以改成其他或不改),然后启动服务器,其会自动解压。

3. 修改CAS登录的用户库
CAS的默认设置是只要用户名和密码相同,即可进行登录成功,真正的系统用户名和密码相同的可能性极小,所以我们需要修改默认的设置。

主要的修改在deployerConfigContext.xml文件里
位置:<TOMCAT_HOME>/webapps/cas/WEB-INF。

首先找到
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />

注释该行,加入下面的bean:
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
   <property name="sql" value="select password from clientuser where username=?" />
   <property name="dataSource" ref="dataSource" />
   </bean>

这里bean的class属性用到的是CAS服务器端封装的JDBC包cas-server-jdbc-3.0.5-rc2.jar里的
QueryDatabaseAuthenticationHandler方法,所以要将此包拷贝到/WEB-INF下的lib中。

这里sql属性是从clientuser表中根据cas登陆名查找密码。

dataSource属性需要再添加一个bean,如下:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
   <property name="driverClassName">
     <value>com.mysql.jdbc.Driver</value>
   </property>

   <property name="url">
    <value>jdbc:mysql://192.168.1.130:3306/sso</value>
   </property>

   <property name="username">
    <value>root</value>
   </property>

   <property name="password">
     <value>pass</value>
   </property>
</bean>

4. 测试是否配置成功
启动tomcat之后,新打开得浏览器中输入https://localhost:8443即可看到安全报警对话框,选择是正确显示。说明CAS服务器已经配置成功并完成。 

5. 配置过程中可能会出现的错误
a) 系统找不到指定的文件:(服务器启动时)
   情况一,
   C:\Documents and Settings\Administrator\.keystore (系统找不到指定的文件。)
   情况二,
   C:\Program Files\tomcat-5.5.26\server.keystore (系统找不到指定的文件。)

   如果您只是在tomcat的server.xml配置中打开了8443端口,但没有用keystoreFile属性,
   tomcat默认去找C:\Documents and Settings\Administrator\.keystore文件,如果没有找到就会出现情况一的错误,
   如果使用了keystoreFile属性,但仍然没有server.keystore文件,就会出现情况二的错误。

b) Keystore was tampered with, or password was incorrect(服务器启动时)
   当使用了keystorePass时且提供了错误的密码便会出现这个错误。

c) No name matching localhost found
   这就是步骤 1-a)要求 姓名是:localhost的原因,当姓名不是localhost的时候,我们在CASFilter中使用localhost就会报这个错。

d) unable to find valid certification path to requested target
   当服务器证书没有导入到jre的cacerts证书库的时候会出现这个错误,同样要注意要讲证书导入到tomcat使用的jre中。

 

 

分享到:
评论

相关推荐

    cas服务端完整构建

    配置CAS服务端有两种常见的方式:一种是在Tomcat中直接部署;另一种是在MyEclipse中创建CAS服务端项目。接下来将分别介绍这两种方式的具体步骤。 ##### 2.1 直接在Tomcat中部署服务端 1. **下载并部署CAS服务端** ...

    CAS服务端和客户端war包.rar

    这个压缩包“CAS服务端和客户端war包.rar”包含了实现CAS服务所需的所有核心组件和两个客户端应用,方便进行SSO环境的搭建。 1. **CAS服务器端war包(cas.war)** CAS服务器是整个SSO系统的核心,它提供认证服务,...

    CAS服务端文件下载

    在本项目中,我们关注的是CAS服务端的文件下载部分,这意味着我们将探讨如何设置和配置CAS服务器,以便用户可以通过它安全地下载文件。 首先,CAS服务端的构建使用了Maven,这是一个广泛使用的Java项目管理和集成...

    cas服务端-连接数据库版

    5. **参考文档**:提供的链接(http://blog.csdn.net/qq_27556567/article/details/77880295)是一个详细的教程,讲述了如何在CAS服务端集成MySQL数据库,包括环境搭建、数据库表结构设计、CAS配置修改等内容,对于...

    cas服务端和客户端可用代码

    这个给定的压缩包文件包含了实现CAS服务端和客户端的代码,可以直接运行,且数据库采用了MySQL作为后端存储,具有自定义配置。 一、CAS服务端 CAS服务端是整个SSO系统的核心,负责用户的身份验证。以下是一些关键...

    cas服务端war包

    CAS服务端的war包,执行build.sh run可以直接运行,如果运行时报错,则需要安装\etc\cas\thekeystore,这个是个证书。

    cas服务端应用

    CAS(Central Authentication Service)是基于Java的开源身份验证框架,主要功能是实现单...总的来说,CAS服务端应用是构建单点登录系统的基石,通过合理的配置和使用,可以极大地提升用户体验,同时强化系统的安全性。

    cas 普通方式和SpringBoot方式客户端 普通方式服务端

    在本文中,我们将探讨如何在普通方式和Spring Boot方式下配置和使用CAS客户端和服务端。 首先,让我们了解一下`CMD生成证书命令.txt`。在CAS部署中,安全通信通常依赖于SSL/TLS证书,用于加密传输数据。这个文件...

    cas 系统实例 服务端配置(一)

    标题 "cas 系统实例 服务端配置(一)" 提到的是 CAS(Central Authentication Service)系统的一个服务端配置教程。CAS 是一个开源的身份验证框架,主要用于实现单一登录(Single Sign-On, SSO)。在本教程中,我们...

    CAS单点登录(SSO)服务端自定义认证+CAS客户端配置+CAS完整使用文档+CAS4.2.7 cas-serv服务端源码 cas-client客户端源码

    本压缩包提供了CAS服务端自定义认证的实现,以及CAS客户端的配置示例,适用于需要构建安全认证系统的IT专业人员。以下是对压缩包中内容的详细解释: 1. **CAS服务器端自定义认证**: CAS服务端的核心功能在于验证...

    cas 服务端和客户端 main是自定义服务端登陆页面 还有一个是5.2.3原版

    3. 客户端配置:Pac4j提供灵活的配置选项,可以根据实际需求调整与CAS服务端的交互方式。 **项目结构与文件** 虽然没有具体列出文件名,但通常一个这样的项目会包含以下部分: 1. 配置文件:如`application....

    第七节:CAS4.0.0 以上服务端配置多个数据源

    在IT行业中,尤其是在企业级应用开发中,多...接下来,为了使CAS服务端能识别并使用这些数据源,我们需要在相关的业务组件中注入它们。例如,如果你希望一个服务使用`secondaryDataSource`,可以这样配置: ```xml ...

    CAS服务端(非原生)

    在这个“CAS服务端(非原生)”项目中,开发者对标准的CAS服务端进行了改造,以满足特定需求。 首先,项目采用了Maven作为构建工具来管理代码依赖和构建流程。Maven是一个强大的Java项目管理工具,它通过在pom.xml...

    cas 服务端

    cas服务端代码,版本是4.0版本这个版本是maven 版本,稳定性不错所以我选这个

    基于Laravel的CAS服务端实现PHP-CAS-Server.zip

    PHP CAS Server是一个基于Laravel框架开发的CAS服务端实现,旨在解决使用PHP技术栈的中小型公司因无法对Java版CAS服务端二次开发而放弃使用CAS的问题,因此本项目的核心目标之一就是易于扩展。功能:目前已经实现了...

    cas.rar_cas java_cas服务端代码_单点登录

    4. CAS服务端代码:压缩包中的“cas”目录很可能包含了CAS服务器的核心组件代码,包括认证模块、票据管理、服务注册与管理等。这些代码可以帮助开发者深入理解CAS的工作机制,例如如何处理HTTP请求,如何验证用户...

    CAS服务端war包(亲测可用)

    CAS,全称Central ...总之,CAS服务端war包提供了构建单点登录环境的基础,其部署和配置需要对Java Web应用、Servlet容器和SSO机制有一定的了解。正确配置和使用CAS可以极大地提升企业级应用的安全性和便捷性。

    cas服务端所需jar包

    cas服务端所需jar包,c3p0-0.9.1.2.jar 、cas-server-support-jdbc-4.0.0.jar、 mysql-connector-java-5.1.13-bin.jar

    Cas服务端部署+认证采用MD加密方式

    Cas服务端部署与MD5加密认证是网络安全领域中常见的实践,尤其在企业级应用系统中,为了确保用户身份验证的安全性,通常会采用这样的方法。Cas(Central Authentication Service)是一种开放源码的身份验证框架,它...

Global site tag (gtag.js) - Google Analytics