cas服务器搭建
生成 https证书
CAS Service 需要用https的方式,那么就需要证书。
生成证书需要三步:
- 生成密钥
- 生成证书
- 导入证书
1. 生成密钥
keytool -genkey -alias casserver -keyalg RSA -keystore E:/ssl/casserver.keystore
参数说明:
-genkey 生成密钥 -keyalg 指定密钥算法,这时指定RSA -alias 指定别名 -keystore 指定密钥库存储位置,这里存在 E:/ssl/目录下
在执行中会问你很多问题,当问到 :您的名字与姓氏是什么? 此时需要填写域名 www.casserver.com,作为之后的访问地址,其他随意。 执行完后生成一个密钥文件 casserver.keystore,这个文件有两个地方需要用到,需要保持一致,后面会讲到。
2. 生成证书
keytool -export -alias casserver -storepass 123456 -file E:/ssl/casserver.cer -keystore E:/ssl/casserver.keystore
参数说明:
-storepass 刚刚生成密钥文件时候的设置的密码 -file 指定导出证书的文件名为casserver.cer -keystore 指定之前生成的密钥文件的文件名执行完后目录下会生成一个casserver.cer证书
3. 导入证书
keytool -import -alias casserver -keystore C:/"Program Files"/Java/jdk1.8.0_181/jre/lib/security/cacerts -file E:/ssl/casserver.cer -trustcacerts
将证书导入到JDK信任库,把原来的$JAVA_HOME/jre/lib/security/cacerts文件要先删掉,否则会报出 Keystore was tampered with, or password was incorrect。
下面是整个过程:
PS E:\ssl> keytool -genkey -alias casserver -keyalg RSA -keystore E:\ssl\casserver.keystore
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: www.casserver.com
您的组织单位名称是什么?
[Unknown]: casserver
您的组织名称是什么?
[Unknown]: casserver
您所在的城市或区域名称是什么?
[Unknown]: wx
您所在的省/市/自治区名称是什么?
[Unknown]: js
该单位的双字母国家/地区代码是什么?
[Unknown]: CN
CN=www.casserver.com, OU=cainian, O=casserver, L=wx, ST=js, C=CN是否正确?
[否]: y
输入 的密钥口令
(如果和密钥库口令相同, 按回车):
再次输入新口令:
------------------------------------------------------------------------------------
PS E:\ssl> keytool -export -alias casserver -storepass 123456 -file E:/ssl/casserver.cer -keystore E:/ssl/casserver.keystore
存储在文件 中的证书
------------------------------------------------------------------------------------
PS E:\ssl> keytool -import -alias casserver -keystore C:/"Program Files"/Java/jdk1.8.0_181/jre/lib/security/cacerts -file E:/ssl/casserver.cer -trustcacerts
输入密钥库口令:
所有者: CN=www.casserver.com, OU=cainian, O=casserver, L=wx, ST=js, C=CN
发布者: CN=www.casserver.com, OU=cainian, O=casserver, L=wx, ST=js, C=CN
序列号: 509d1aea
有效期为 Wed Jun 17 22:02:55 CST 2020 至 Tue Sep 15 22:02:55 CST 2020
证书指纹:
MD5: 5B:B2:7C:D7:B7:31:C5:7C:1C:BC:F7:DA:A8:2D:1C:B2
SHA1: F6:76:55:55:D7:48:E3:9F:3A:B6:EE:68:1F:BE:DC:DE:51:B1:33:E5
SHA256: 24:53:18:CD:E8:95:65:D8:6E:6A:7B:8E:79:CB:91:BD:F4:2E:C3:99:59:D1:76:12:A8:95:45:2A:4B:03:E4:AD
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3
扩展:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 70 B3 D5 76 36 EA 54 BA 75 C1 A1 5C DA 76 82 0E p..v6.T.u..\.v..
0010: 4D F4 C9 05 M...
]
]
是否信任此证书? [否]: y
证书已添加到密钥库中
最后,hosts 配置 127.0.0.1 www.casserver.com
搭建CAS service
5.3之后的都是gradle项目,5.3以之前都是maven 项目,建议使用5.3版本搭建。 需要从github上拉取模板 https://github.com/apereo/cas-overlay-template/tree/5.3 可根据官方文档自行搭建。 如果你嫌麻烦,作者提供个了搭建好的cas-overlay工程,请在qq群中下载。
- 1 将前面生成的casserver.keystore文件/cas-overlay/src/main/resources目录下
- 2 在工程目录下执行命令 ./build.sh bootrun,按照springboot方式启动
- 3 生成war包:./build.sh run。
- 4 出现 READY 的branner就启动好了 访问地址 https://www.casserver.com:8443/cas/login, 出现如下画面,输入用户名admin,密码admin登录。