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

WSO2 API Manager 4.1调用HTTPS后端报certificate_unknown及400错误求助

解决WSO2 API Manager 4.1调用HTTPS后端返回400的问题

核心问题定位

日志中的[WARN - SourceHandler I/O error: Received fatal alert: certificate_unknown]是关键,说明APIM的客户端信任存储未信任后端HTTPS服务的证书,导致SSL握手失败,最终返回400状态码。

具体解决步骤

1. 导出后端HTTPS服务的证书

使用OpenSSL命令导出后端证书(替换<backend-host>和<port>为实际地址):

openssl s_client -connect <backend-host>:<port> < /dev/null | openssl x509 -outform PEM > backend-cert.pem

如果后端使用私有CA签发的证书,需导出CA根证书而非仅服务器证书,否则会出现信任链不完整问题。

2. 将证书导入APIM的客户端信任存储

APIM默认的客户端信任存储路径为<APIM_HOME>/repository/resources/security/client-truststore.jks,执行以下命令导入证书:

keytool -importcert -alias backend-cert -file backend-cert.pem -keystore <APIM_HOME>/repository/resources/security/client-truststore.jks -storepass wso2carbon
  • alias可自定义,建议用易识别的名称
  • 输入yes确认信任该证书

3. 验证证书导入结果

执行命令确认证书已成功导入:

keytool -list -keystore <APIM_HOME>/repository/resources/security/client-truststore.jks -storepass wso2carbon | grep backend-cert

若能看到证书条目,说明导入成功。

4. 检查deployment.toml的SSL配置

确保APIM的SSL传输配置指向正确的信任存储,在<APIM_HOME>/repository/conf/deployment.toml中确认以下配置:

[transport.passthru_ssl]
trust_store = "${carbon.home}/repository/resources/security/client-truststore.jks"
trust_store_password = "wso2carbon"

若之前修改过配置,需确保没有覆盖或错误配置该参数。

5. 开启DEBUG日志排查细节(可选)

若问题仍存在,开启Wire日志查看详细SSL握手过程:
在<APIM_HOME>/repository/conf/log4j2.properties中添加:

logger.org.apache.synapse.transport.http.wire.name = Wire
logger.org.apache.synapse.transport.http.wire.level = DEBUG

重启APIM后重新调用API,查看日志中SSL握手的具体错误信息,进一步定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:05:29