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