在实际搭建环境中发现,很多同学都会遇到SSO环境集成的问题,其实很多情况下就是SSO的数字证书的问题。
今天就详细讲一下相关内容。
由于"应用"和"SSO" 在进行交互的时候, 是在Java代码中通过HTTPS进行交互的,这个时候Java会到相应的keystore中寻找sso证书的根证书,如果应用没有指定javax.net.ssl.trustStore,java会默认使用$JAVA_HOME/jre/lib/security
/cacerts
这里面已经放了很多根证书。
但是如果我们的正式证书过期了或者使用的是自签名的证书,那么就需要我们自己往keystore中导入sso所使用的数字证书。
这样"应用这边才能确认" sso是受信任的,并通过sso证书中的公钥来进行相应的交互。
常见错误类型
1.没有找到相应的证书,是在正式环境上,指定的keystore没有其根证书的情况下发生的,可以通过在启动脚本中去掉
指定keystore或者往指定的keystore中添加相应的根证书。
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
2.在测试环境的时候(目前测试环境使用的为过期的正式证书),有些应用因为没有导入sso测试环境的证书引起的。解决方案在应用的测试环境中导入sso测试环境的数字证书。
ERROR [edu.yale.its.tp.cas.client.CASReceipt] validation of [[edu.yale.its.tp.cas.client.ProxyTicketValidator proxyList=[null] [edu.yale.its.tp.cas.client.ServiceTicketValidator casValidateUrl=[https://sso-test.alibaba-inc.com/cas/serviceValidate] ticket=[ST-197-Ih9I49YzhqNERxtiAPGd-cas_imitation] service=[https%3A%2F%2Fcrmcn-test.alibaba-inc.com%3A443%2Fuser%2Fturbine%2Ftemplate%2FIndex%2Faction%2Fuser.SsoSignin] errorCode=[INVALID_TICKET] errorMessage=[ticket 'ST-197-Ih9I49YzhqNERxtiAPGd-cas_imitation' not recognized] renew=false entireResponse=[<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
<cas:authenticationFailure code='INVALID_TICKET'>
ticket 'ST-197-Ih9I49YzhqNERxtiAPGd-cas_imitation' not recognized
</cas:authenticationFailure>
</cas:serviceResponse>
]]]] was not successful.
如何导出导入证书
我们可以通过比如Firefox这样的浏览器轻松的导出sso服务器的证书,也可以在服务器的环境中
从keystore中导出来再拷贝给应用端。
导出的命令是
keytool -export -keystore keystore -alias sso-cert -file ssoserver.cer
这个命令中的-keystore和-alias参数要根据实际的情况来决定
往应用端的kestore中导入证书的命令是
keytool -
import
-keystore keystore -alias sso-cert -file ssoserver.cer
查看一个keystore下面的所有证书的列表可以通过下面的命令
keytool -v -list -keystore keystore
分享到:
相关推荐
cas 有证书和无证书两种方式环境搭建以及所涉及的包,完整版哦
CAS 生成证书和密钥各种命令导入和导出证书
• select&set业务场景,在并发时会出现一致性问题 • 基于“值”的CAS乐观锁,可能导致ABA问题 • CAS乐观锁,必须保证修改时的“此数据”就是“彼数据”,应该由“值”比对,优化为“版本号”比对
通过在StartSSL申请免费证书,并应用于CAS(Central Authentication Service)中。
cas证书创建导入及tomcat配置支持ssl服务
3.5.2,客户端用cas-client-3.2.1,里边详细描述了具体每一步的配置过程及遇到的问题及异常,相信你也会碰到的,cas-client-3.2.1中需要修改一个java类的源代码,编译然后添加到原来的包中,是关于证书验证的问题。...
cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x...
CAS协议,包括cas1.0和cas2.0的协议,cas 协议分为两部分,一部分是票据-ticket,一部分是url。
H3C CAS 3.0版 H3C CAS 3.0产品培训胶片 H3C CAS-云计算管理平台技术白皮书V2.0 H3C CAS-云计算管理平台 安装指导-5W101-整本手册 H3C CAS-维护手册V2.0 H3C CAS-工程开局指导手册V2.0 H3C CAS-Rest API H3C ...
[alt_names] DNS.1 = .cddx.lan 不同域名公用同一个证书 4、文档中的文件路径,为本人电脑路径,请根据具体情况进行修改 5、分三步进行操作:一、创建证书;二重启tomcat;三、管理员导入生成的证书到keystore; 6、...
cas4.2.7 实现其他系统和cas互相认证互信 cas4.2.7 实现其他系统和cas互相认证互信 cas4.2.7 实现其他系统和cas互相认证互信
CAS数字电视条件接受系统概述.pptx
这是一份系统介绍数字电视条件接收从前端,传输,到终端的系统文档。看完本文档后你将全面了解数字电视CA全套原理及前端CAS的部署,运作原理。
包含cas源码、cas使用说明文档(包含配置信息)、连接数据库所需jar包、cas服务端自定义返回值等
n cas-server-3.4.2\modules\cas-server-support-jdbc-3.4.2.jar 、 cas-server-integration-restlet-3.4.2.jar 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 目录下。 n 数据库驱动 jar 拷贝...
cas6.3版本 tomcat环境准备好,mysql设置成application.properties中提示,thekeystore自己生成放入tomcat并需要在jdk中导入证书
CAS5.3.2Docker 部署方案CAS5.3.2Docker 部署方案CAS5.3.2Docker 部署方案
1.CAS-集成mysql 2.CAS-日志审计 3.CAS-连接池配置 4.CAS-自定义错误信息 5.CAS-识别json文件 6.CAS-页面缓存记住我 7.CAS-cookie设置 8.CAS-tgc设置 9.CAS-登出 10.CAS-redisCluster集群存储ticket(相应redis必须...
H3C_CAS_LINUX安装cas-tools
CAS源码分析图,