如何配置后端服务器使用aws gateway api生成的客户端SSL证书?

时间:2017-05-17 05:19:09

标签: amazon-web-services amazon-ec2 aws-api-gateway

我已经通过elasticbeanstalk将node js app部署到单实例类型的ec2实例。在此之后,我通过amazon api网关部署了我的应用程序。我的EC2实例是公开的。我想限制它只能接受来自amazon api网关的请求。

要执行此操作,我将关注此https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-client-side-ssl-authentication.html

我通过api网关生成了客户端证书,但我不知道如何在EC2实例上使用或安装此证书,以便EC2实例仅接受来自aws api网关的请求。我在我的应用程序中使用Node js服务器。

请帮忙。

1 个答案:

答案 0 :(得分:2)

API网关客户端证书功能不使用ACM证书。

对于客户端证书,API Gateway会生成自己的自签名证书,并使您可以使用客户端证书的PEM编码公钥来配置Web服务器。 API Gateway保留证书的私钥,并在向Web服务器发出请求时使用它。根据设计,无法从API网关导出私钥,因此您可以确定调用者是API网关,因为没有其他人可以获得私钥。

要获取客户端证书的PEM编码公钥,请调用get-client-certificate as documented here

请注意,您还必须使用由API网关信任的证书颁发机构签名的服务器证书来配置Web服务器。不要将此与用于自定义域名的证书混淆。这些用于TLS终止对API的传入请求。我正在为此用例讨论的服务器证书仅用于您的后端Web服务器,因此API Gateway可以通过TLS调用它。

建议您在API Gateway中启用客户端证书之前获取,部署,配置和测试服务器证书。一次,您的服务器证书使用API​​网关,然后启用客户端证书并修改您的Web服务器以要求它。

This article描述了如何使用Node.js配置服务器端和客户端证书。