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

目录:

1. 报错一编辑

javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching xxx.xxx.xx found
1.1 解决方案
检查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. 报错二编辑

如果在导入/导出证书的时候,有keytool报错,报错信息如下:
java.io.IOException: Keystore was tampered with, or password was incorrect
2.1 解决方案
密码默认的就是changeit,那么-storepass 123456后面的密码修改为changeit即可。

3. 报错三编辑

配置完成登录后报错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.1 解决方案
这是因为java并没有成功把我们创建的证书添加到受信库中,重新进行一遍受信操作,或者直接把JRE中的受信库文件直接替换成我们的前面创建的cacerts文件。
首先看tomcat用的是哪里的jre:
222
由上看出,这里tomcat用的jre是%JAVA_HOME%\jdk目录下,把证书挪到%JAVA_HOME%\jdk\jre\lib\security下面即可。