cas服务器搭建

  一、CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。

    

  二、cas中央认证服务器,我们在使用的时候用来作为单点登录的方式,这里主要是搭建中央认证服务器。cas存在3中访问协议,https、http、imaps。但是cas默认使用的是https的访问方式。http需要做一些配置,这里主要是说明cas搭建需要涉及的问题。接下来会说明如果修改。

  三、cas项目下载地址:https://github.com/apereo/cas-overlay-template/tree/master(这个是主线的)

    我们这里使用的是5.3版本:https://github.com/apereo/cas-overlay-template/tree/5.3(maven版)

  四、使用idea打开项目

  1)默认会下载cas-server-webapp-tomcat-5.3.8.war的依赖

  

  2)war中的内容为

  

  五、修改参数打cas.war

  1)修改账户信息:application.properties

  默认:

  

  根据自己需要进行修改,我这里修改为admin::admin

  2)如果我们要支持http的客户端,需要设置一下内容

  http:

  a、HTTPSandIMAPS-10000001.json

{
  "@class" : "org.apereo.cas.services.RegexRegisteredService",
  "serviceId" : "^(https|imaps)://.*",
  "name" : "HTTPS and IMAPS",
  "id" : 10000001,
  "description" : "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.",
  "evaluationOrder" : 10000
}

  在serviceId中加入http

  b、在application.properties加入

#http时使用
cas.tgc.secure=false
#开启JSON文件的识别
cas.serviceRegistry.initFromJson=true

  3)maven打包

  六、运行

  七、https协议

  1)这里使用的是jdk自带的keytool证书来实现验证,实际中可以自己申请证书。这里主要是为了测试,使用linux的环境测试

  2)默认还是要加入设置

#开启json数据识别
cas.serviceRegistry.initFromJson=true

  如果需要支持http:

{
  "@class" : "org.apereo.cas.services.RegexRegisteredService",
  "serviceId" : "^(https|imaps)://.*",
  "name" : "HTTPS and IMAPS",
  "id" : 10000001,
  "description" : "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.",
  "evaluationOrder" : 10000
}

  在serviceId中加入http

  3)生成证书(这里用的是相对路径,cas.keystore,密码自己set)

keytool -genkey -alias cas -keyalg RSA -keystore cas.keystore -storepass changeit

  

  备注:如果域名不一样会导致无限重定向

  4)导出证书

keytool -export -file cas.crt -alias cas -keystore cas.keystore -storepass changeit

   

  

  4)导入jdk(默认是不需要导入的,只是在进一步验证的时候需要导入)

keytool -import -keystore "/usr/java/jdk1.8.0_192/jre/lib/security/cacerts" -file cas.crt -alias cas -storepass changeit

  

  5)删除证书(cas为设置的别名,这里不做删除)

keytool -delete -alias cas -keystore "/usr/java/jdk1.8.0_192/jre/lib/security/cacerts" -storepass changeit

  

  6)配置tomcat的server.xml  

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="/root/https/cas.keystore"  
               keystorePass="changeit"/>

   注释8080端口

<!-- <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" /> -->

  7)启动项目测试

 

 

posted @ 2019-02-21 10:48  小不点丶  阅读(11200)  评论(1编辑  收藏  举报