- 因为oracle jdk不支持以ip建立证书,所以只能虚拟一个域名cas.server.com
这个配置在/etc/hosts中
172.16.0.25 cas.server.com
如下图,是公司测试环境配置
2.进行liunx命令窗口(黑窗口)
输入如下命令:
keytool -genkeypair -keyalg RSA -keysize 2048 -sigalg SHA1withRSA -validity 36500 -alias cas.server.com -keystore /home/tomcat-v2/tomcat.keystore -dname "CN=cas.server.com,OU=cas,O=cas,L=shenzhen,ST=sz,C=CN"
各参数含义:
-genkeypair 生成密钥
-keyalg 指定密钥算法,这时指定RSA,
-keysize 指定密钥长度,默认是1024位,这里指定2048,长一点,我让你破解不了(哈哈...),
-siglag 指定数字签名算法,这里指定为SHA1withRSA算法
-validity 指定证书有效期,这里指定36500天,也就是100年,我想我的应用用不到那么长时间
-alias 指定别名,这里是cas.server.com
-keystore 指定密钥库存储位置,这里存在/home/tomcat-v2/(tomcat的主目录下,即与conf目录在同一个目录下)
-dname 指定用户信息,不用一个一个回答它的问题了;
输入上述命令,下面密码我们输入 casking,然后一直回车,就在/home/tomcat-v2/生成了tomcat.keystore文件;
3.导出数字证书
在LIUNX命令窗口下输入如下命令:
keytool -exportcert -alias cas.server.com -keystore /home/tomcat-v2/tomcat.keystore -file home/tomcat-v2/tomcat.cer -rfc
导出数字证书,即根据刚才生成的tomcat.keystore文件生成一个tomcat.cer文件,在生成的过程中输入的密码也是casking
4.配置cas服务器tomcat
将tomcat中server.xml中的连接器配置改为:
如下图,为公司的测试环境的配置情况,参考
原来下面哪个是注销的,请去掉注销,同时输入新开通的外网端口。
同时将生成的tomcat.keystore复制到tomcat的主目录下,即与conf目录在同一个目录下;
5.将服务端的证书tomcat.cer导入到客户端java的cacerts证书库中
LIUNN命令窗口 cd到/usr/java/jdk1.7.0_03/jre/lib/security 因为我的JAVA_HOME= /usr/java/jdk1.7.0_03
(可以用命令查看:echo $JAVA_HOME)
之后运行如下命令:
keytool -import -alias cacerts -keystore cacerts -file /home/tomcat-v2/tomcat.cer -trustcacerts
输入cacerts证书库的密码 changeit,这个是它的默认密码; 这一步最主要的,一般情况下,没有把它说明白,其实这一步就是让cas客户端服务器去理解cas.server.com这台机器所发过来的经过加密的数据 (这个涉及到https数据对称加密交互,不多说了,因为说不明白);
6.各个程序包配置文件修改(chpm为例子)
由于我们程序比较,这里以CHPM为例,其它的都一样,只要找到它们的配置文件和包就可以。
(1)修改chpm的配置文件BIN目录下面的
/home/tomcat-v2/bin/configuration/chpmServer.propertie中
配置cas的地址,加上https,同时配置上面配置的安全端口(其它的都一样)
(2)修改程序包里面的配置文件(各个包去个修改)
CHPM为例,别的程序也在这个目录下面
/home/tomcat-v2/webapps/chpm/WEB-INF/classes/spring下面
里面的配置内容
<bean name="ticketValidationFilter"
class="org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter"
p:serverName="${APP_SERVER}"
p:localServerName="${LOCAL_APP_SERVER}"
p:redirectAfterValidation="true">
<property name="ticketValidator">
<bean class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator">
<constructor-arg index="0" value="https://cas.server.com:58080/crhip-cas" />
</bean>
</property>
<property name="localTicketValidator">
<bean class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator">
<constructor-arg index="0" value="https://cas.server.com:58080/crhip-cas" />
</bean>
</property>
</bean>
7.重启TOMCAT,访问各个 程序,测试各个功能是否正确
原来访问的地址不变
如果程序同cas 不在同一个服务器配置法子
(1)把172.16.0.25上面的tomcat.cer文件
复制到 192.168.50.48 ,记好目录
(2)进入到 cd 进入到 java 目录 一般是这里/usr/java/jdk1.7.0_03/jre/lib/security
(3)执行命令:keytool -import -alias serverpublickey -file /48的目录/tomcat.cer -keystore cacerts
密码:changeit