CAS5.3.x单点登陆(一)CAS服务器搭建

一、创建证书

证书是单点登录认证系统中很重要的一把钥匙,客户端于服务器的交互安全靠的就是证书;由于是个人学习测试所以就直接用JDK自带的keytool工具生成证书;如果以后真正在产品环境中使用肯定要去证书提供商去购买,证书认证一般都是由VeriSign认证,中文官方网站:http://www.verisign.com/cn/

  1. 打开命令行,进入${JAVA_HOME}\bin目录,输入keytool -genkey -alias tomcat -keypass changeit -keyalg RSA -keystore server.keystore
  2. 根据提示输入口令changeit并确认
  3. 输入名字与姓氏localhost(服务器域名,一般输入localhost或ip地址)
  4. 其他可不填,最后输入y确认。结束后${JAVA_HOME}\bin下会有一个server.keystore文件
    在这里插入图片描述

二、导出证书

  1. 输入keytool -export -alias tomcat -keypass changeit -file server.crt -keystore server.keystore
  2. 输入口令changeit;结束后${JAVA_HOME}\bin下会有一个server.crt文件
    在这里插入图片描述

三、将证书导入jre可信任区

  • 由于空格问题,我这里先将jre目录'C:\Program Files\Java\jre1.8.0_152\lib\security\'下的cacerts文件复制出来放到了C盘根目录
  • 输入keytool -import -alias tomcat -file server.crt -keypass changeit -keystore C:/cacerts
  • 输入口令changeit
  • 输入y确认
  • C:/cacerts文件重新放到'C:\Program Files\Java\jre1.8.0_152\lib\security\'目录下
    在这里插入图片描述

四、cas服务器搭建

  • 什么是Overlay

overlay可以将多个项目war合并成为一个项目,并且如果项目存在同名文件,那么主项目中的文件将覆盖掉其他项目的同名文件。下面使用maven 的Overlay配置实现无侵入的改造cas.

  1. 打开全球最大的同性交友网站下载cas-overlay-template-5.3.zip

  2. 解压cas-overlay-template-5.3.zip并重命名为sso-cas-server(随意,也可以不用重命名)

  3. idea导入项目sso-cas-server

  4. 鼠标右键点击项目pom.xml,单击'Add as Maven Project'

  5. 打开idea中的Terminal,输入build.cmd debug,由于没有配置ssl证书的key-store所以运行中是会有错误提示的,运行完成后会在项目中生成target目录。

  6. 打开/target/cas/WEB-INF/classes文件夹,会发现里面有一个熟悉的application.properties文件,下面我们要覆盖这个文件
    在这里插入图片描述

  7. 分别新建文件夹/src/main/java/src/main/resources。右键/src/main/java,并Mark Directory as 选择Sources Root;右键/src/main/resources,并Mark Directory as 选择Resources Root。新建包org.apereo.cas(后面改造cas要求文件名一致);复制/target/cas/WEB-INF/classes/application.properties/src/main/resources,将上面生成的server.keystore复制到/src/main/resources
    在这里插入图片描述

  8. 编辑/src/main/resources/application.properties,将server.ssl.key-store设置为classpath:server.keystore

  9. /src/main/resources/application.properties中追加如下配置开启http协议支持

    cas.server.http.port=8080
    cas.server.http.protocol=org.apache.coyote.http11.Http11NioProtocol
    cas.server.http.enabled=true
    cas.server.http.attributes.attributeName=attributeValue
    
  10. 编辑pom.xml,找到overlays节点,改为如下配置使我们的application.properties生效

    <overlays>
        <overlay>
            <groupId>org.apereo.cas</groupId>
            <artifactId>cas-server-webapp${app.server}</artifactId>
            <!-- 排除被覆盖的文件 -->
            <excludes>
                <exclude>WEB-INF/class/application.properties</exclude>
            </excludes>
        </overlay>
    </overlays>
    
  11. 重新输入输入build.cmd debug,启动完成后输入https://localhost:8443/cas/loginhttp://localhost:8080/cas/login均能访问到统一认证中心.
    在这里插入图片描述
    在这里插入图片描述

五、在外部tomcat中部署cas服务

上一步中搭建cas服务是以springboot内置tomcat服务器启动的,若要在外部tomcat中部署cas服务则又有不同.

  1. 将第四步中target文件夹下的cas.war复制到tomcat的webapps文件夹下

  2. 下面有两种访问方式

    http访问

    1. 双击tomcat的bin目录下的startup.bat文件
    2. 浏览器输入http://localhost:8080/cas/login可进入统一认证中心

    https访问

    1. 修改tomcat的conf目录下的server.xml文件

      将下列两项注释掉

      <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
      <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
      

      添加下面代码片段(keystoreFiletruststoreFilekeystorePass对应修改)

      <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
      		   sslImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation"
                    maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
      		   keystoreFile="C:/Program Files/Java/jdk1.8.0_152/bin/server.keystore" truststoreFile="C:/Program Files/Java/jre1.8.0_152/lib/security/cacerts" keystorePass="changeit"
                    clientAuth="false" sslProtocol="TLS" />
      
    2. 保存server.xml后回到tomcat的bin目录下,双击startup.bat文件

    3. 浏览器输入https://localhost:8443/cas/login可进入统一认证中心

-----参考https://apereo.github.io/cas/5.3.x/installation/Configuration-Properties.html#http-web-requests

相关推荐
©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页