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

WSO2 API Manager无法连接带密码自定义证书的HTTPS后端API

解决WSO2 API Manager对接带密码自定义证书HTTPS服务器的SSL认证问题

我之前碰到好几个开发者遇到过一模一样的问题——Postman能正常调用带密码自定义证书的HTTPS API,但WSO2 APIM测试时就抛出javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated错误。核心原因很简单:WSO2的Java运行时信任库没有信任你后端服务器的自定义证书,Postman之所以能成功,是因为它自动或手动信任了这个证书,但WSO2默认只信任官方CA签发的证书,你的自签名/自定义证书不在它的信任列表里。

咱们一步步来解决:

1. 导出后端服务器的自定义证书

首先得把后端API服务器的证书导出来,有两种方式:

  • 用keytool命令导出(如果知道后端证书的密钥库信息):
    假设后端证书存放在keystore.jks里,密钥库密码是your-keystore-pass,证书别名是backend-cert-alias,执行命令:
    keytool -export -alias backend-cert-alias -keystore keystore.jks -file backend-cert.cer -storepass your-keystore-pass
    
  • 用浏览器导出:
    直接访问你的后端API地址https://localhost:8443,点击地址栏的锁形图标,找到证书详情,选择导出证书(保存为.cer格式即可)。

2. 将证书导入WSO2的信任库

WSO2默认使用的信任库是<APIM安装目录>/repository/resources/security/wso2carbon.jks,默认密码是wso2carbon。把刚才导出的证书导入这个信任库:

keytool -import -alias backend-api-cert -file backend-cert.cer -keystore <APIM_HOME>/repository/resources/security/wso2carbon.jks -storepass wso2carbon

执行命令后,会提示你是否信任这个证书,输入yes确认即可。

3. 确认WSO2的SSL客户端配置(可选但建议检查)

打开<APIM_HOME>/repository/conf/axis2/axis2.xml,找到HTTPS传输发送器的配置块(<transportSender name="https" class="org.apache.synapse.transport.passthru.PassThroughHttpSSLSender">),确保信任库的参数配置正确:

<parameter name="TrustStore" locked="false">repository/resources/security/wso2carbon.jks</parameter>
<parameter name="TrustStorePassword" locked="false">wso2carbon</parameter>

如果你用了自定义的信任库(不是默认的wso2carbon.jks),这里要替换成对应的路径和密码。

4. 重启WSO2 API Manager

所有配置修改后,必须重启WSO2服务器才能让新的信任库配置生效。

额外排查点(如果还是报错)

  • 检查证书的域名匹配:后端证书的CN(通用名称)必须和你在WSO2里配置的后端地址域名一致(比如都是localhost),否则会触发SSL域名不匹配错误;
  • 检查证书是否过期:用keytool或浏览器查看证书的有效期;
  • 如果是双向SSL场景(后端要求客户端也提供证书),还要把WSO2的客户端证书导入到后端服务器的信任库,同时在axis2.xml里配置客户端密钥库的参数(KeyStore和KeyStorePassword)。

内容的提问来源于stack exchange,提问作者Mahesh Siva S T

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:11:48