You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地WSO2 IS配置外部WSO2 IS做OIDC联合认证遇SSL错误求助

问题分析与解决方案

问题描述

在本地WSO2 Identity Server(IS)中为服务提供商配置OIDC联合认证,外部身份提供商同样为WSO2 IS。完成以下配置步骤后:

  • 在外部WSO2 IS中完成入站认证配置
  • 在本地WSO2 IS中配置身份提供商,并完成角色映射与声明映射
  • 更新本地服务提供商的联合认证配置

访问应用时可正常跳转至外部提供商认证,但输入凭证后浏览器返回错误:

Request URL: https://test-vm.com/?error_description=Authentication+required&error=login_required
Payload: error_description: Authentication required、error: login_required

查看本地WSO2 IS日志,发现核心错误:

ERROR {org.wso2.carbon.identity.application.authentication.framework.handler.step.impl.DefaultStepHandler} - Authentication failed exception! javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

核心原因

本地WSO2 IS的JVM信任库中未添加外部WSO2 IS的SSL证书,导致本地IS在与外部IS进行回调通信时,无法验证对方证书的合法性,触发SSL握手失败,最终引发认证流程中断,返回login_required错误。

解决步骤

  1. 导出外部WSO2 IS的SSL证书

    • 打开浏览器,访问外部WSO2 IS的管理控制台(如https://<外部IS域名>:9443/carbon)
    • 点击浏览器地址栏的锁形图标,查看证书详情,将证书导出为.cer或.pem格式的文件(可选DER或PEM编码)
  2. 将证书导入本地WSO2 IS的信任库

    • 找到本地WSO2 IS的信任库路径,默认位于<WSO2_IS_HOME>/repository/resources/security/client-truststore.jks
    • 使用Java的keytool命令导入证书,命令示例:
      keytool -importcert -file <导出的证书文件路径> -alias external-is-cert -keystore <WSO2_IS_HOME>/repository/resources/security/client-truststore.jks -storepass wso2carbon
      
    • 执行命令后,输入yes确认信任该证书
  3. 重启本地WSO2 IS服务

    • 停止当前运行的本地WSO2 IS实例
    • 重新启动服务,使信任库的变更生效
  4. 验证配置

    • 再次访问联合认证应用,完成外部IS的凭证输入后,检查是否能正常完成认证流程,不再返回login_required错误
    • 查看本地WSO2 IS日志,确认无SSL握手相关的错误信息

内容的提问来源于stack exchange,提问作者Devaddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:25:10