cas的github项目地址https://github.com/apereo/cas-overlay-template/
最新版的cas(6.x)使用的编译环境是jdk11 和gradle
由于我本地是使用的jdk8,并且没有使用过gradle,所以我选择cas5.x的版本,5.x的cas使用的是jdk8,和我比较熟悉的maven
这里我选择了5.3的版本,然后下载zip,下载下来之后解压,在解压后的目录如下所示
首先需要在pom文件中加入阿里云的镜像代理
<repositories><!-- 代码库 --> <repository> <id>maven-ali</id> <url>http://maven.aliyun.com/nexus/content/groups/public//</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>fail</checksumPolicy> </snapshots> </repository> </repositories>
然后再当前目录运行./build.sh package
这个执行过程还是比较漫长的,耐心等待
执行结束之后,会多出来一个target目录,里面有个war包
将cas.war放到tomcat的webapp目录下,然后启动tomcat,访问路径http://localhost:8080/cas, 可以看到以下页面
(默认用户名:casuser,密码:Mellon)。
登录成功
设置https
1. 删除已有
C:Program FilesJavajdk1.6.0_10in>keytool -delete -alias tomcat(随意起的别名) -keystore D:/Java/jdk1.6.0_33/jre/lib/security/cacerts -storepass changeit
2. 生成密匙库
输入密钥密码和相应参数,(注意:第一个参数CN要输入域名sso.shipengzhi.com,其他参数就随便了),结果是在用户目录中创建了名为server.keystore的密钥文件。
C:Program FilesJavajdk1.6.0_10in>keytool -genkey -alias tomcat -keypass changeit -keyalg RSA -keystore server.keystore(密钥文件名)
在当前目录下多出一个文件server.keystore
3. 导出数字证书
C:Program FilesJavajdk1.6.0_10in>keytool -export -alias tomcat -keypass changeit -file server.crt -keystore server.keystore
输入keystore密码:changeit
输入上一步中的密码,结果在当前目录生成server.crt密钥文件。(注意:这个文件是要导入客户端的JVM上的)
4.将数字认证导入jre可信任区
C:Program FilesJavajdk1.6.0_10in>keytool -import -alias tomcat -file server.crt -keypass changeit -keystore D:/Java/jdk1.6.0_33/jre/lib/security/cacerts
这里的jre地址和tomcat使用的jre必须一致
输入密码(注意:这里的密码不是上面设定的密码,而是changeit),将创建cacerts文件。
如果运行报错 非法选项: Files。。。。
这可能是因为路径中存在空格或者文件名存在空格的情况,命令识别错误。将对应的 -keystore "%JAVA_HOME%/jre/lib/security/cacerts" 密钥库名称中路径用双引号“” 以及 %JAVA_HOME% 方式来表示。
5. 查看可信证书列表(检查证书是否加入成功)
C:Program FilesJavajdk1.6.0_10in>keytool -list -keystore D:Javajdk1.6.0_33/jre/lib/security/cacerts
构建CAS服务器和过滤器
在tomcat的server.xml文件中添加
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="C:/Program Files/Java/jdk1.8.0_131/bin/server.keystore" keystorePass="changeit" clientAuth="false" sslProtocol="TLS"/>
重新访问cas
参考资料:
搭建:https://blog.csdn.net/zhangjunli/article/details/80885422
报错解决方法:https://blog.csdn.net/weixin_42156742/article/details/83303287