一、配置:
1. jetty(或者tomcat)+SSL
2. Jdk6
3. cas-server版本:3.3.1
4. cas-client版本:3.1.11
我使用的cas版本比较低,有兴趣的同学可以按照官网最新的版本来配置,cas版本从开始到最新的版本内容基本上变化还是挺大的,但是我用这个版本调试成功了,就没换。
cas官方网站:http://www.jasig.org/cas
相应的版本可以在官方网站上下载,也可以在公司maven仓库里下载。
二、生成证书
我使用的证书是公司内部本来就有jettywithssl的脚本,就直接用了,不过在这里写一下使用Java Keytool工具生成证书的步骤,我生成证书后在tomcat上实验过,可以正常使用通过。在DOS窗体运行以下指令(建议编写一个BAT批处理文件执行)
cls
rem please set the env JAVA_HOME before run this bat file
rem delete alia jetty if it is existed
keytool -delete -alias tomcatsso -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
keytool -delete -alias tomcatsso -storepass changeit
(注释: 清除系统中可能存在的名字为tomcatsso 的同名证书)
rem list all alias in the cacerts
keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
(注释: 列出系统证书仓库中存在证书名称列表)
rem generator a key
keytool -genkey -keyalg RSA -alias tomcatsso -dname "cn=hadoop-IdeaPad-U310" -storepass changeit
(注释:指定使用RSA算法,生成别名为tomcatsso的证书,存贮口令为changeit,证书的DN为"cn=hadoop-IdeaPad-U310" ,这个DN必须同当前主机完整名称一致哦,切记!!!)
rem export the key
keytool -export -alias tomcatsso -file $JAVA_HOME/jre/lib/security/tomcatsso.crt -storepass changeit
(注释: 从keystore中导出别名为tomcatsso的证书,生成文件tomcatsso.crt)rem import into trust cacerts
keytool -import -alias tomcatsso -file $JAVA_HOME/jre/lib/security/tomcatsso.crt -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
(注释:将tomcatsso.crt导入jre的可信任证书仓库。注意,安装JDK是有两个jre目录,一个在jdk底下,一个是独立的jre,这里的目录必须同jetty使用的jre目录一致,否则后面jetty的HTTPS通讯就找不到证书了)
rem list all alias in the cacerts
keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
三、配置Tomcat的HTTPS服务
编辑$CATALINA_HOME\conf下的server.xml文件,在connector的配置位置添加以下的配置:
<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="/home/hadoop/.keystore" keystorePass="changeit"
truststoreFile="/usr/java/jdk1.7.0_10/jre/lib/security/cacerts"
clientAuth="false" sslProtocol="TLS"/>
四、部署cas服务器
在cas-server-3.3.1/modules有如下jar包:
将其中的cas-server-webapp-3.3.1.war 更名为cas.war放在webapps目录下,启动tomcat,访问http://localhost:8443/cas/login
输入用户名密码:admin/admin (两个相同的字符串)
到此,服务器的初步SSO部署宣告成功。
五、总结
其实,部署服务端的关键点在于证书的生成,如果公司内部有是最好不过的,证书生成之后,就是将cas的war包放在webapps里面,运行,输入登录的url,能够访问成功就可以了