`
lukejin
  • 浏览: 366166 次
  • 性别: 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
分享到:
评论

相关推荐

    java获取数字证书信息

    在部署了Tomcat SSL服务后,可能会遇到CAS验证问题,如`CASSSO`出现错误“`edu.yale.its.tp.cas.client.CASAuthenticationException: Unable to validate Proxy Ticket Validator`”。此时,我们需要将自签名的证书...

    cas 单点登录 耶鲁大学单点登录

    本节将详细介绍如何配置一个基本的CAS单点登录环境,包括服务器端数字证书的生成与配置,以及Tomcat服务器的安全设置。 ##### 1. 配置服务器端的数字证书 在CAS环境中,数字证书对于确保通信安全至关重要。以下...

    cas

    凭证可以是用户名和密码、数字证书或其他形式的身份证明,它们用于验证用户身份。在CAS中,处理和验证这些凭证是其核心功能之一。可能这个文件包含了有关CAS如何存储、管理和验证用户凭证的信息,或者是关于如何配置...

    lifery6.1+cas初始化环境搭建及门户解决方案

    在CAS中,数字证书用于确保CAS Server的身份。 **2.3.2 证书内容** 数字证书通常包含以下信息: - 持有者的名称。 - 持有者的公钥。 - 签发者的名称。 - 有效期。 - 签发者的数字签名。 **2.4 CAS 安装** **...

    cas-server-3.5.2

    6. **cas-server-support-x509**:这个模块提供了对X.509证书的验证支持,使得CAS能够处理基于数字证书的身份验证,适用于更安全的环境,如HTTPS和SSL连接。 7. **assembly.xml**:这是Apache Maven Assembly插件的...

    CAS认证登录简单介绍

    Keytool是Java SDK中自带的工具,用于管理密钥库和数字证书。在CAS环境中,Keytool可能会用于生成和管理服务器的SSL证书,以确保通信的安全性。 ### 实例 在一个典型的CAS部署中,用户首次尝试访问应用A,会被...

    条件接收系统CAS DVB-CAS

    - **数字证书**:包含公钥和个人信息的电子文档,由可信第三方机构颁发。 **附录四、条件接收系统实例介绍(ChinaCrypt)** ChinaCrypt是中国的一种CAS系统解决方案,它提供了全面的数字电视广播服务。ChinaCrypt...

    CAS单点登录(SSO)教程

    在实际生产环境中,通常会从第三方机构如VeriSign获取数字证书。但在学习或测试环境中,可以使用JDK自带的`keytool`工具来自行创建证书。具体步骤如下: - 创建证书文件夹 `d:/keys` - 执行命令 `keytool -genkey -...

    cas-server-服务端源码.zip

    对于标签"CA",可能是指证书颁发机构(Certificate Authority),在CAS中,可以使用CA签发的数字证书来增强服务的安全性,比如用于HTTPS通信或服务之间的身份验证。 总的来说,这个源码资源对于想深入了解SSO技术、...

    cas单点登录例子说明

    在建立安全的SSO环境中,数字证书是关键。它们用于保证客户端与服务器之间的通信安全。在这个例子中,使用JDK自带的`keytool`工具自动生成证书。在实际生产环境中,通常会从权威的证书颁发机构(如VeriSign)购买...

    Laravel开发-jwt-cas-server

    这包括设置 CAS 服务器的 URL、证书、端口,以及客户端应用如何验证和处理返回的 JWT 令牌。 6. **安全性**: 由于涉及到用户认证,安全是首要考虑的问题。项目应遵循最佳实践,如使用 HTTPS,确保通信的安全;同时...

    CAS服务端3.4.8安装手册

    - **CA (Certificate Authority)**: 证书颁发机构,提供数字证书的服务商。 - **SSL (Secure Socket Layer)**: 安全套接层协议,用于实现HTTP通信的安全加密传输。 - **ALG (Algorithm)**: 加密算法,如RSA、SHA1...

    CAS单点登录例子教程

    在CAS SSO中,安全通信通常依赖于SSL/TLS协议,这就需要用到数字证书。首先,我们需要使用Java的`keytool`工具来生成证书。 1. **生成证书**: 命令: ``` keytool -genkey -alias sjc -keyalg RSA -keystore c:...

    liferay cas ldap 集成配置

    - 步骤一:打开控制台,如Keytool或openssl,用于管理数字证书。 - 步骤二:生成证书请求(CSR),这包含公钥和组织信息。 - 步骤三:导出私钥,这是服务器用于解密由客户端发送的加密信息的密钥。 - 步骤四:...

    JA-SIG(CAS)学习笔记3.doc

    凭据可以是用户名/密码对,也可以是数字证书或其他形式的身份证明信息。 通过实现这个接口,开发者可以将任何类型的认证机制集成到CAS Server中,确保企业应用能够无缝地利用CAS的SSO功能。 总的来说,CAS技术为...

    CAS整合LDAP实现单点登录学习笔记.pdf

    CAS2.0改进了凭证处理,支持多种凭证类型,如用户名/密码、数字证书等,增强了灵活性和安全性。 【LDAP】 轻量级目录访问协议(Lightweight Directory Access Protocol, LDAP)是一种开放标准的目录服务协议,用于...

Global site tag (gtag.js) - Google Analytics