CAS配置备忘

    登陆Linux,我用的是SecureCRT客户端。
    首先生成服务端密匙和证书:
  1. /*生成服务端密匙*/
  2. /home/weblogic/sso_cas/jdk1.6.0_10/bin/keytool -genkey -alias tomcatserver -keyalg RSA -keypass changeit -storepass changeit -keystore tomcatserver.keystore
  3. /*生成服务端证书*/
  4. /home/weblogic/sso_cas/jdk1.6.0_10/bin/keytool -export -alias tomcatserver -storepass changeit -file tomcatserver.cer -keystore tomcatserver.keystore
  5. /*导入证书文件到cacerts 文件中*/
  6. /home/weblogic/sso_cas/jdk1.6.0_10/bin/keytool -import -trustcacerts -alias tomcatserver -file tomcatserver.cer -keystore /home/weblogic/sso_cas/jdk1.6.0_10/jre/lib/security/tomcatserver -storepass changeit 
    注:这个的bin用绝对路径是因为那台机子是另外一个部门的,我们无法更改它的配置(默认是jdk1.4)。这儿还有一点,在生成服务端密钥时,你输入的姓名必须填写你机器名称或者该机器ip对应的域名。我们这儿使用的是mmis-sso,后面在开发人员客户端配置的时候会用到mmis-sso。
    生成文件完成之后,向tomcat的server.xml添加如下代码:
  1. <Connector protocol="HTTP/1.1" 
  2.     port="8443" minSpareThreads="5" maxSpareThreads="75" 
  3.     enableLookups="true" disableUploadTimeout="true" 
  4.     acceptCount="100" maxThreads="200" 
  5.     scheme="https" secure="true" SSLEnabled="true" 
  6.     keystoreFile="/home/weblogic/tomcatserver.keystore" keystorePass="changeit" 
  7.     truststoreFile="/home/weblogic/sso_cas/jdk1.6.0_10/jre/lib/security/tomcatserver" 
  8.     clientAuth="false" sslProtocol="TLS"/>
     注:keystoreFile和truststoreFile就是上面刚刚生成的文件,.keystore文件默认生成在登陆用户目录下。
     启动tomcat6.0(/home/weblogic/sso_cas/tomcat6.0/bin/./startup.sh),在IE中输入:https://mmis-sso:8443/,如果配置成功,会显示tomcat的默认页面。这儿mmis-sso需要在window的C:/WINDOWS/system32/drivers/etc/hosts文件中配置:
  1. 172.20.4.145       mmis-sso
     服务端配置完成,来看看客户端的配置(这儿客户端是指每个程序员自己开发测试的tomcat)。在IE中访问https://mmis-sso:8443/可以导出服务端的证书,存为d:/tomcatserver.cer,在windows下执行:
  1. keytool -import -trustcacerts -file d:/tomcatserver.cer -keystore tomcatclient -storepass changeit
     完了在d盘下生成 tomcatclient文件。
     然后配置System的参数,这儿方法很多,根据自己的项目来进行不同的配置,我这儿是在ServletListener中设置的:
  1. public void contextInitialized(ServletContextEvent event) {
  2.         System.setProperty("javax.net.ssl.trustStore""d:/tomcatclient");
  3.         System.setProperty("javax.net.ssl.trustStorePassword""changeit");
  4. }
     在项目的web.xml中配置:
  1.   <filter>
  2.     <filter-name>CASFilter</filter-name>
  3.     <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
  4.     <init-param>
  5.       <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
  6.       <param-value>https://mmis-sso:8443/sso/login</param-value>
  7.     </init-param>
  8.     <init-param>
  9.       <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
  10.       <param-value>https://mmis-sso:8443/sso/serviceValidate</param-value>
  11.     </init-param>
  12.     <init-param>
  13.       <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
  14.       <param-value>localhost:8080</param-value>
  15.     </init-param>
  16.   </filter>
  17.   <filter-mapping>
  18.       <filter-name>CASFilter</filter-name>
  19.       <url-pattern>/*</url-pattern>
  20.   </filter-mapping>
     一个基本的单点登陆已经完成,你访问本地web,会自动跳转到单点登陆服务的登陆页面。我一个人配了3天才弄完,2个异常比较常见:
  1. javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: 
  2. Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
  3. javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: 
  4. PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: 
  5. unable to find valid certification path to requested target
      我用的CAS是JA-SIG Central Authentication Service,包自己去网站上可以下载的。
      有一个奇怪的现象就是,我这儿用tomcat的插件启动tomcat,sso没法使用,必须使用startup.bat。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值