如何设置 API Gateway 和微服务之间的 SSL 通信?

Posted

技术标签:

【中文标题】如何设置 API Gateway 和微服务之间的 SSL 通信?【英文标题】:How to setup the SSL comunication between API Gateway and microservices? 【发布时间】:2019-10-13 06:54:48 【问题描述】:

我正在使用 API 网关 (KONG) 和微服务(Spring-boot 应用程序)设置环境,但我对它们之间的 SSL 通信有很多疑问/担忧。

我应该将 SSL 设置放在 API 网关还是微服务中?

目前我的微服务应用有自己的 SSL 证书,它通过 8443 端口在容器中运行。

但现在实现 API 网关,我不确定是否必须将其从我的微服务中删除并在 API 网关中进行设置,或者同时添加它。

我希望我的微服务和 API 网关之间能够正确通信,以便客户端能够通过 8443/ssl 使用服务。

【问题讨论】:

【参考方案1】:

您的 API 网关将面向客户端。因此,为了安全通信,您的 API 网关必须位于 SSL 后面。

关于微服务,是否支持 SSL 取决于您。两种方式都会起作用。在我看来,如果你的微服务被限制在 VPC 内(并且 API 网关是同一个 VPC 的一部分)并且没有公开,那么在 SSL 之后就不需要微服务了。

【讨论】:

那么,您的意思是说 SSL 证书应该在本例中 Kong Gateway 的 API Gateway 设置中设置,以便安全地连接客户端和端点(由 Api Gateway 处理),对吧? 是的,没错。因为客户端只面向 API 网关。

以上是关于如何设置 API Gateway 和微服务之间的 SSL 通信?的主要内容,如果未能解决你的问题,请参考以下文章

Ocelot实现API网关服务

Stable Diffusion - API和微服务开发

如何使用 AWS API Gateway 为 CORS 预检请求设置配额

springcloud01-微服务和微服务架构

如何对 Amazon API Gateway 终端节点进行 CNAME

如何在 API Gateway 和 React 应用程序之间启用 AWS 中的 CORS 策略?