`
lukejin
  • 浏览: 362097 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

CAS的数字证书问题

阅读更多

在实际搭建环境中发现,很多同学都会遇到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

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics