首页 > 解决方案 > 如何将客户端证书发送到后端?

问题描述

我创建了一个小型 Spring Boot 应用程序,其中包含一个受 x509 证书保护的 REST 端点。

使用 Postman,我可以调用这个 REST 端点。因此我不得不禁用“SSL 证书验证”并为服务添加证书(主机、CRT 文件、KEY 文件和密码)。当然主机是“本地主机”。

在下一步中,我想将 WSO2 Api Manager 放在邮递员和我的服务之间。

所以我发布了 API,将我的服务的 crt 文件导入 WSO2 信任库。另外我在axis2.xml中设置了require。

现在我正在调用 WSO2 API Store 中配置的端点,在控制台中我总是得到:[2019-08-30 17:15:06,941] 错误 - SourceHandler I/O 错误:空证书链 javax.net.ssl.SSLHandshakeException:空证书链

更新: 我按照文档中的说明进行操作,但仍然无法正常工作。现在例外是“坏证书”。

为了避免误解,我画了一个概述: overview.png

所以这是我正在试验的当前状态。正如您在下面的部分中看到的那样,WSO2 应该只将客户端证书转发到安全的后端。正如你所看到的,我有多个客户。

更新 2

我认为我的用例的正确术语是所谓的“客户端和 API 网关之间的相互 SSL”。互联网上有带有自定义处理程序的指南,但该指南不起作用,因为证书始终为空。

标签: wso2wso2-am

解决方案


require=true如果要使用 MTLS 对后端进行身份验证,则不需要设置。(如果要使网关 API URL MTLS 受保护,则使用该配置)

对于您的用例,请遵循此文档。

https://docs.wso2.com/display/AM260/Mutual+SSL+between+API+Gateway+and+Backend


推荐阅读