单点登录JA-SIG研究分析~配置篇
一、实验步骤:
STEP 1,搭建Java Web服务器环境
安装 JDK + Tomcat 5.0, HTTP端口8080 , HTTPS端口8443
JAVA_HOME = D:\Java\jdk1.5(注:必须要配置java_home)
安装完毕,启动Tomcat ,在浏览器上 测试 http://localhost:8080/
STEP 2,生成证书
将如下的批处理文件拷贝到硬盘中,修改开头变量信息。(注意:CN必须为本机的机器名称.不能写本机的IP地址)
@echo 密码
set pwd=Heroic
@echo 主机名称
set CN=HZ
@echo 组织
set OU=JH
@echo 城市名称
set O=天津
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
@echo 生成服务器密匙
keytool -genkey -dname "CN=%CN%, OU=%OU%, O=%O%, L=%O%, ST=%O%, C=CN" -alias server -keyalg
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
RSA -keysize 1024 -keystore server.keystore -keypass %pwd% -storepass %pwd% -validity 3500
@echo 将数字证书导出到文件
keytool -export -alias server -file server.cer -keystore server.keystore -storepass %pwd%
@echo 生成客户端密匙
keytool -genkey -dname "CN=%CN%, OU=%OU%, O=%O%, L=%O%, ST=%O%, C=CN" -alias client -keyalg
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
RSA -keysize 1024 -keystore client.keystore -keypass %pwd% -storepass %pwd% -validity 3500
@echo 将数字证书导出到文件
keytool -export -alias client -file client.cer -keystore client.keystore -storepass %pwd%
@echo 交换证书
keytool -import -noprompt -trustcacerts -alias server -file server.cer -keystore cacerts -
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
storepass %pwd%
keytool -import -noprompt -trustcacerts -alias client -file client.cer -keystore cacerts -
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
storepass %pwd%
运行如上代码,可在批处理文件路径下生成如下文件:server.keystore(服务端密钥文件)、server.cer(服务端证书)、client.keystore(客户端密钥文件)、client.cer(客户端证书)、cacerts(证书文件)。
运行server.cer和client.cer两个文件,点击“安装证书”.
把"server.keystore"文件拷贝到Tomcat文件夹下。(如:Tomcat\cas\server.keystore)
把"cacerts"文件,拷贝到<JAVA_HOME>\jre\lib\security目录下覆盖cacerts文件(注意 一定要设置java_home ,安装JDK是有两个jre目录,一个在jdk底下,一个是独立的jre,这里的目录必须同Tomcat使用的jre目录一致,否则后面Tomcat的HTTPS通讯就找不到证书了)
STEP 3,配置Tomcat
打开Tomcat \conf\server.xml文件把以下代码的补注释的内容打开.修改其中的keystorePass这个属性为证书密码。
keystoreFile为证书存放的位置。
<Connector port="8443" maxHttpHeaderSize="8192"
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
keystorePass="changeit" keystoreFile="/server.keystore"
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
enableLookups="false" disableUploadTimeout="true"
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
acceptCount="100" scheme="https" secure="true"
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
clientAuth="false" sslProtocol="TLS" />
STEP 4,配置Tomcat
使用Tomcat的例子jsp-examples来做客户端,打开项目中的web.xml文件,加入以下配置信息:
<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>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
最后拷贝
cas.war这个项目到tomcat\webapps\下 。拷贝
casclient-2.1.1.jar到
Web项目下\WEB-INF\lib文件夹中。