Cas单点登录配置SSL时遇到的javax.net.ssl.SSLPeerUnverifiedException问题的解决方法

 

网上有很多资料介绍如何集成CAS单点登录产品。由于集成CAS需要预先在tomcat中配置SSL,而且还要在客户端导入证书,但是许多人按照网上介绍的操作操作却发现以下问题:尽管配置了SSL后可以访问https://localhost:8443,也能登录https://localhost:8443/cas/login,但是在地址栏输入自己的Web应用的连接,自动跳到Cas登录页面,登录成功后并没有跳回到受保护页面,而是报下面的异常:

<javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated>

javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated

        at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificateChain

这是什么原因呢?

首先简单回顾一下网上介绍的操作步骤:

首先是生成server端的证书

keytool -genkey -alias tomcat -keyalg RSA (说明,提示姓名的时候输入localhost而不是你的名字)

keytool -export -file server.crt -alias tomcat

C:/Documents and Settings/bzwang/.keystore文件复制到tomcatconf目录(bzwangwindows的当前用户目录,tomcat是要配置cas servertomcat,.keystore是和tomcatserver.xml在同一目录下。

然后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="conf/.keystore"     keystorePass="changeit"/>  

 

这是CAS 所在的tomcat的配置方式,server端环境配置完成。然后在客户端JVM导入证书,由于现在server端和client端都在一台机器上,所以需要注意,实际环境中cas和客户端应用是在不同机器上,导入证书是在部署了web应用的那台机器上执行的。网上介绍客户端导入证书的命令是:

keytool -import -keystore %JAVA_HOME%/jre/lib/security/cacerts -file server.crt -alias tomcat

客户端应用的web.xml中如何配置CAS过滤器我就不讲了,这里重点要说的是为什么用keytool –import 语句导入证书却仍然出现javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated之类的异常,问题是因为你机器上实际的JRE环境不是在JAVA_HOME里的那个JRE,一般大家安装JDK时都默认安装了JDKJRE,例如我的机器上的jdk安装在C:/jdk 1.5.0 _05JRE安装在C:/jre1.5.0_05,所以除了执行上面的import指令外,还需要执行下面的指令:

 

 keytool -import -keystore C:/jre 1.5.0 _05/lib/security/cacerts -file server.crt -alias tomcat

所以请大家一定要牢记,如果你的主机上有多个 JRE 的话,最好每个 JRE 路径下都用 keytool –import 指令导入一次,如果其他配置没问题的话,做完这步一定 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值