WSO2 API Manager无法代理HTTPS端点及p7b证书导入问题求助
WSO2 API Manager HTTPS端点证书链配置问题解决方案
1. P7B格式证书导入失败解决方法
WSO2 APIM 3.2.0的证书上传接口原生仅支持DER/PEM格式的单证书导入,不直接支持P7B格式的证书包,你可以先将P7B证书拆分为独立的PEM/DER格式证书后依次导入:
- 用openssl命令拆分p7b证书包:
openssl pkcs7 -in cacer.p7b -print_certs -out cacert_chain.pem - 执行完成后打开
cacert_chain.pem文件,将每个-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----段的内容单独保存为独立的.cer/.pem文件 - 按照先根证书、再中间证书、最后站点证书的顺序,依次通过APIM Publisher的端点证书上传界面导入
- 所有证书导入完成后,重启APIM网关节点使信任存储配置生效,即可正常代理HTTPS请求到目标端点
2. WSO2 APIM加密逻辑相关疑问解答
2.1 WSO2 APIM加密依赖说明
WSO2 APIM是基于Java开发的应用,默认TLS加解密逻辑依赖JDK自带的JCE(Java加密扩展)组件,不直接依赖系统级的openssl。只有部分可选的密钥操作、自定义加密插件功能才会调用系统openssl。你与远端API之间的TLS握手、流量加解密默认都是JDK的JCE层处理,和系统openssl版本无关。
2.2 自定义加密组件替换方案
如果需要支持特定区域加密标准,不需要替换openssl,优先选择替换JDK的JCE组件即可:
- 下载对应JDK版本的支持目标加密标准的JCE实现包,替换JDK目录下
jre/lib/security路径中的原有JCE权限包和实现包 - 如果需要更灵活的加密策略,可以在APIM的
deployment.toml配置文件中添加自定义安全提供器,设置优先级高于JDK默认JCE即可生效
如果确实需要使用openssl作为底层加密组件,可以配置APIM使用netty-tcnative库绑定系统openssl,替换默认的JDK TLS实现即可。
内容的提问来源于stack exchange,提问作者Andrew Metelkin
相关产品推荐
相关产品推荐

