我已经通过elasticbeanstalk将node js app部署到单实例类型的ec2实例。在此之后,我通过amazon api网关部署了我的应用程序。我的EC2实例是公开的。我想限制它只能接受来自amazon api网关的请求。
我通过api网关生成了客户端证书,但我不知道如何在EC2实例上使用或安装此证书,以便EC2实例仅接受来自aws api网关的请求。我在我的应用程序中使用Node js服务器。
请帮忙。
答案 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配置服务器端和客户端证书。