历史版本9 :CAS常见报错及解决方案 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 报错一编辑

1.1 报错信息

javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching xxx.xxx.xx found

1.2 解决方案

检查 web.xml 中的配置

<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
<param-value>https://susie:8443/cas/login</param-value>
<!--这里的server是服务端的IP-->
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://susie:8443/cas/proxyValidate</param-value>
<!--这里的ServerName是服务端的主机名也就是CN-->
</init-param>

确保其中的 susie 跟生成证书时第一个问填写的域名是一致的即可。如下图:

2. 报错二编辑

2.1 报错信息

在导入/导出证书的时候,有 keytool 报错,报错信息如下:

java.io.IOException: Keystore was tampered with, or password was incorrect

2.2 解决方案

密码默认的就是changeit,那么 -storepass 123456 后面的密码修改为 changeit 即可。

3. 报错三编辑

3.1 报错信息

配置完成登录后报错500-Internal Server Error

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

HTTP Status 500 – Internal Server Error

3.2 解决方案

这是因为 Java 并没有成功把我们创建的证书添加到受信库中,重新进行一遍受信操作,或者直接把 JRE 中的受信库文件直接替换成我们的前面创建的 cacerts 文件。

首先看 Tomcat 用的是哪里的 JRE:

222

由上看出,这里 Tomcat 用的 JRE 是%JAVA_HOME%\jdk目录下,把证书挪到%JAVA_HOME%\jdk\jre\lib\security下面即可。

4. 报错四编辑

4.1 报错信息

多台服务器做 CAS 及集群。集群正常,单点正常,但是登录后内存管理界面的图表为空。

若移除单点登录配置文件,直接登录,内存管理界面图表则显示正常。

4.2 解决方案

需要配置 CAS 登出。

若不配置 CAS 登出,新用户虽然登录,但是 Session 里的 Token 还是之前的用户,和 Cookie 中现有用户的 Token 冲突。

Token 冲突了,WebSocket 连接在连接验证时被断开,内存管理界面的图表自然为空。