使用CAS配置SSO
a) 配置Tomcat使用SSL安全认证
i.使用命令提示符进入到Tomcat安装目录C:/Program Files/Apache Software Foundation/Tomcat 5.x
ii.生成服务端密钥,执行以下命令
keytool -genkey -alias 别名keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore
例:keytool -genkey -alias casserver -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore
运行后出现提示信息:
输入keystore密码:changeit 这里也填入主机名
您的名字与姓氏是什么?
[Unknown]: localhost 这里一定要填写正确的主机名
您的组织单位名称是什么?
[Unknown]: composite
您的组织名称是什么?
[Unknown]: composite
您所在的城市或区域名称是什么?
[Unknown]: Beijing
您所在的州或省份名称是什么?
[Unknown]: Beijing
该单位的两字母国家代码是什么
[Unknown]: cn
CN=localhost, OU=composite, O=composite, L=Beijing, ST=Beijing, C=cn 正确吗?
[否]: y
完成后会在Tomcat目录生成一个名为casserver的文件
iii. 生成服务端证书,执行以下命令
keytool -export -alias casserver -storepass changeit -file server.cer -keystore server.keystore
命令执行后生成一个server.cer的证书文件
-----------------------------------------------------------
如果不是双向认证,既clientAuth="false",不用生成客户端密钥,可忽略这一部分
iv.生成客户端密钥,执行以下命令
keytool -genkey -alias casclient -keyalg RSA -keypass changeit -storepass changeit -keystore client.keystore
v.生成客户端证书,执行以下命令
keytool -export -alias casclient -storepass changeit -file client.cer -keystore client.keystore
命令执行后生成一个client.cer的证书文件
vi.导入证书文件到cacerts 文件中,执行以下命令
keytool -import -trustcacerts -alias client -file client.cer -keystore cacerts -storepass changeit
-------------------------------------------------------------
keytool -import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit
把cacerts文件,拷贝到<JAVA_HOME>/jre/lib/security目录下
vii.拷贝cas-server-3.0.6.zip包内的target目录下的cas.war文件到Tomcat目录下的webapps目录下,另外,可以在地址栏键入https://localhost:8443/cas/login,淙隩omcat用户名和密码,看到绿色登陆成功,祝贺你,服务端配置完成了。
viii.修改Tomcat的配置文件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" />
<Connector port="8443" maxHttpHeaderSize="8192"keystorePass="changeit" keystoreFile="/server.keystore" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" />
<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>localhost:8080</param-value> </init-param> </filter> <filter-mapping> <filter-name>CASFilter</filter-name> <url-pattern>/servlet/*</url-pattern> </filter-mapping>