CAS 单点登陆 - Cas Server 下载、部署、测试 与 Tomcat 7.0 开启 Https

    这篇文章只介绍如何下载、部署、测试,概念将在单独篇章进行讲解。html

    值得注意的是cas server 没有现成的应用部署包,是须要咱们本身去打包成war后,手动进行发布,有两种打包方式,第一种是经过gradle直接打包成war,而后进行部署访问;第二种是经过将gradle将项目工程转换成标准项目结构后,导入Eclipse中而后导出war包,而后进行部署访问;这里咱们只讲第一种,第二种点过。web

CAS Server下载地址

  • https://www.apereo.org/projects/cas

CAS Server版本号

  • 4.2.7

CAS Server下载步骤

    注意:cas server 由 Gradle 构建,由于须要提早配置好 Gradle的环境,在上一篇中有讲述。apache

    下载后解压文件,咱们能够看到目录结构,里面有许多个工程,咱们使用cas-server-webapp。tomcat

  • 点击gradlew.bat。
  • 若是报错,尝试点击dev-build-no-tests.sh或dev-build.sh。
  • 若是仍是报错,尝试利用命令行进入cas-server-webapp目录,执行gradle build命令。
D:\cas-4.2.7\cas-server-webapp
d:
gradle build

    ps:对gradle不太了解,报错的信息查不到资料,因此只能按照上面的步骤进行尝试。服务器

    项目构建完毕后,cas-server-webapp/build/libs目录下会出现cas-server-webapp-4.2.7.war,就说明你已经成功拿到部署文件了。app

    将该项目包放置到Tomcat服务器下面自动编译便可,启动服务器后,咱们进入到login页面,能够看到项目是启动并进入成功的,可是会有错误,由于不是https协议,后续将介绍到tomcat 开启 https。eclipse

CAS Server项目加载到Eclipse

    咱们须要对cas server服务器端进行定制化开发或添加功能,就须要作二次开发,这里能够将cas server转换为标准工程结构而后导入IDE中,进行二次开发后再打包。webapp

D:\cas-4.2.7\cas-server-webapp
d:
gradle eclipse

    ps:要确保上一个步骤没有问题的状态下才进行转换,不然导入工程中会出现错误。如下是cas-server-webapp转换后的目录结构。jsp

CAS Server应用部署-证书类型说明

    在网上看了好多篇文章,建立和应用证书的方法有大概有2种基本方法,不太明白有什么区别,先记录一下,后面作一个简单区分,后续的证书应用也分为两种尝试记录。性能

  • 第一种为:共2个文件,证书文件(不带后缀名)和证书文件CRT(不推荐,须要关闭APR)
  • 第二种为:证书文件Keystore(推荐)

CAS Server应用部署-建立证书-CRT

    上面将到部署CAS Server应用后出现的错误,必须使用https协议访问,所以须要tomcat 7.0 开启 https,在这以前咱们还须要作一些准备工做,这第一步就是必须有公认的证书,可是在测试环境下咱们使用JDK 自带的keytool来建立测试用,若是须要公认的证书,能够到各大网站去购买,如: 由VeriSign认证,中文官方网站:http://www.verisign.com/cn/

    这里说明的是第一种CRT证书生成方式,打开cmd命令行窗口,输入如下命令进行建立。(mapsay为证书名称,先后保持一致就好,d盘下会生成mapsay文件名的证书文件,不带后缀名)

keytool -genkey -alias mapsay -keyalg RSA -keystore D:/mapsay

    证书将生成在D盘文件名为mapsay不带后缀的文件,这里第一个填写绑定域名。(由于测试用,我在这里编写的域名是不存在的,须要将它加入到本地hosts文件中便可,位置是:C:\Windows\System32\drivers\etc,hosts文件内,添加127.0.0.1 sso.mapsay.net)

CAS Server应用部署-导出证书-CRT

    使用如下命令导出证书。

keytool -export -file d:/mapsay.crt -alias mapsay -keystore d:/mapsay

    导出的证书为mapsay.crt,到这一步就算拿到证书了。

CAS Server应用部署-客户端JVM导入证书-CRT

    使用如下命令导入证书。

keytool -import -keystore D:\DevelopeSoft\Java\jdk1.8.0_131\jre\lib\security\cacerts -file D:/mapsay.crt

    完成证书导入,到这一步就已经完成了对证书的操做。

    错误信息解决:导入证书可能会遇到下面的问题,若是出现这个问题则将D:\DevelopeSoft\Java\jdk1.8.0_131\jre\lib\security下的cacerts文件删除便可。

CAS Server应用部署-Tomcat 7.0 开启 Https-CRT

    服务器:Tomcat 7.0

    通过上一步,咱们已经将证书导入到客户端JVM中,如今咱们将cas server 部署到单独的服务端,利用tomcat服务器来完成,这里涉及到Tomcat 7.0启动Https。

    建立一个的tomcat,打开conf目录下的server.xml配置文件进行修改。

  • 访问端口改成:18443,原来是8443。
  • 添加keystoreFile="D:/mapsay",第一次生成key的文件位置,不带拓展名。
  • 添加keystorePass="mapsay",建立证书的密码。

    修改完毕后,启动tomcat,报错以下:

    要求不启动APR,注释掉server.xml文件中的下面一段代码,便可解决问题。

<!--APR library loader. Documentation at /docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

    从新启动后,输入网址访问便可:https://sso.mapsay.net:18443/cas-server-webapp-4.2.7/index.jsp

    看到网上有说明若是不启动APR库会致使性能流失,有另外的解决方案,具体我也没测过,这里仍是先贴出来以备不时之需。

CAS Server应用部署-建立证书-Keystore

    这里说明的是第二种Keystore证书生成方式,打开cmd命令行窗口,输入如下命令进行建立。

keytool -genkey -alias mapsay -keyalg RSA

    mapsay为设置的证书别名,可是实际生成的证书是不带名称的.keystore文件,默认生成在当前登陆用户文件夹下,具体看图中命令行路径能够查找的到。(我这里:C:\Users\Administrator)

CAS Server应用部署-Tomcat 7.0 开启 Https-Keystore

    服务器:Tomcat 7.0

    修改conf目录下的server.xml配置文件。

  • 访问端口改成:18443,原来是8443。
  • 添加keystoreFile="D:/.keystore",将上一步生成的keystore文件移动到了d盘下。
  • 添加keystorePass="mapsay",建立证书的密码。

    启动后以下无报错信息。

    输入网址访问便可:https://sso.mapsay.net:18443/cas-server-webapp-4.2.7/index.jsp

相关文章
相关标签/搜索