您的位置:首页 > 理论基础 > 计算机网络

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

2018-03-12 10:08 681 查看
这篇文章只介绍如何下载、部署、测试,概念将在单独篇章进行讲解。

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

CAS Server下载地址

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

CAS Server版本号

4.2.7

CAS Server下载步骤

注意:cas server 由 Gradle 构建,因为需要提前配置好 Gradle的环境,在上一篇中有讲述。

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

点击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,就说明你已经成功拿到部署文件了。



将该项目包放置到Tomcat服务器下面自动编译即可,启动服务器后,我们进入到login页面,可以看到项目是启动并进入成功的,但是会有错误,因为不是https协议,后续将介绍到tomcat 开启 https。



CAS Server项目加载到Eclipse

我们需要对cas server服务器端进行定制化开发或添加功能,就需要做二次开发,这里可以将cas server转换为标准工程结构然后导入IDE中,进行二次开发后再打包。

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

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



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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐