赞
踩
项目通过统一身份认证入口进出,项目为http协议,但cas端为https。
但突然登录报错,不知原因?报错内容如下:
集成cas报错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
1、通过错误可以看到找不到有效的ssl证书,所以很可能证书已经过期;
2、查看cas证书信息,发现证书是刚刚更换的新证书;(操作见:下方补充说明)
3、可以得出结论:因为cas更换证书导致我们请求失败;
4、解决办法:重新导入证书;
1、下载生产jssecacerts 证书的java工具:InstallCert.jar;
2、直接输入命令,生成 jssecacerts 文件;
# www.csdn.net 为需要生产证书的网站
java -jar InstallCert.jar www.csdn.net
复制证书文件 jssecacerts 到java的安装路径\jre\lib\security下即可,比如我的安装路径为:
/usr/java/jdk1.8.0_31/jre/lib/security/
说明:通常docker容器会映射出数据卷作为证书的存储,如下图:
具体操作:
1、我们将 InstallCert.jar 文件上传到宿主机的上图位置;
2、在容器内执行命令,生成 jssecacerts 文件;
# www.csdn.net 为需要生产证书的网站
java -jar InstallCert.jar www.csdn.net
3、重启容器即可;
cho 112.211.94.39 www.baidu.com >> /etc/hosts && java -jar /opt/installCert/InstallCert.jar
&& cp /opt/installCert/jssecacerts /usr/lib/jvm/java-1.8-openjdk/jre/lib/security
&& java -Dlog4j.configuration="file:/root/log4j.properties" -jar $JAVA_OPTS $JAR_FILE $JAR_OPTS
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。