cas在tomcat上配置时,需要打开tomcat的ssl功能,并且要生成证书(为了实现SSL,一个Web服务必须对每一个接受安全连接的外部接口或者IP地址有一个相关联的证书)
在<TOMCAT_HOME>目录下创建证书
首先生成服务端的证书:
1. 生成密钥对
keytool -genkey -alias tomcat-server -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore
2 将服务器证书导出为证书文件:
keytool -export -alias tomcat-server -storepass changeit -file server.cer -keystore server.keystore
输入密码(changeit):
其次创建客户端证书:
1.用keytool在所选的keystore文件中创建客户端证书:
keytool -genkey -alias tomcat-client -keyalg RSA -keypass changeit -storepass changeit -keystore client.keystore
2.将新客户端证书从keystore导出到证书文件:
keytool -export -alias tomcat-client -storepass changeit -file client.cer -keystore client.keystore
输入keystore密码(changeit)
输入的密码均是changeit,用户名输入localhost就可(也看到有人输入ip,不过我没试过)
将上述步骤所得到的tomcat根目录下server.cer以及client.cer证书文件导入到cacerts 文件中,
cacerts文件默认生成在tomcat根目录下
keytool -import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit
keytool -import -trustcacerts -alias client -file client.cer -keystore cacerts -storepass changeit
在tomcat根目录下找到cacerts文件,拷贝到<JAVA_HOME>\jre\lib\security文件下
cas 在服务端(cas server)也就是tomcat下的配置为:
修改<TOMCAT_HOME>/conf下面得server.xml文件,添加如下:
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="/server.keystore" keystorePass="changeit"/>
cas 在客户端的配置
以servlet-example为例子
在web.xml增加下面内容
<!-- CAS Filters --> <filter> <filter-name>CASFilter</filter-name> <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name> <param-value>https://localhost:8443/cas/login</param-value> </init-param><!--这里是服务端的主机名--> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name> <param-value>https://localhost:8443/cas/proxyValidate</param-value> </init-param><!--这里是服务端的主机名,而且必须是--> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name> <param-value>client:port</param-value><!--client:port就是需要CAS需要拦截的地址和端口,一般就是Client端的IP和port--> </init-param> </filter> <filter-mapping> <filter-name>CASFilter</filter-name> <url-pattern>/servlet/*</url-pattern> </filter-mapping>
其中edu.yale.its.tp.cas.client.filter.serverName的value为需要CAS需要拦截的地址和端口,一般就是Client端的IP/主机名和port
以上即为cas在tomcat下的配置,当然是最简单的默认的配置,如果需要更改验证方式,还需要其他配置,另外,还需要
从cas-server网站上下载到的casclient.jar文件到客户端的lib下面