客户端SSL无法与AWS API Gateway一起使用

时间:2015-12-09 09:40:07

标签: ssl amazon-web-services aws-api-gateway lets-encrypt

我在API网关上生成了客户端SSL证书,并将其添加到我的nginx配置中,如下所示:

listen *:443;
ssl on;
server_name api.xxxx.com;
ssl_certificate /etc/letsencrypt/live/api.xxxx.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/api.xxxx.com/privkey.pem;
ssl_verify_client on;
ssl_client_certificate /etc/nginx/ssl/awsapigateway.crt;

location /home/ubuntu/api  {          
      # if ($ssl_client_verify != SUCCESS) { return 403; }
      # proxy_pass http://my.http.public.endpoint.com;
      # proxy_set_header X-Client-Verify $ssl_client_verify;
}

通过AWS API网关测试控制台进行测试后,客户端证书无法正常工作。它以错误400结束 - 没有发送所需的SSL证书。 API网关在每次请求时将其客户端证书发送到我的服务器,以便我可以验证这些请求是否真正来自API网关。

我认为它不起作用的原因是我将来自AWS API网关控制台的PEM编码公钥直接添加到awsapigateway.crt。这是对的吗?

此外,nginx是否支持自签名客户端SSL证书,这是AWS为我们提供的?

1 个答案:

答案 0 :(得分:1)

Api Gateway团队。

看起来nginx配置是正确的。对于我们的简单测试用例,我们使用节点服务器,只需将控制台中的PEM证书直接写入设置为ca的crt文件,或者在本例中为ssl_client_certificate。

如果出于某种原因,控制台中的测试功能存在问题,我还会使用实际部署的API进行测试。确保使用舞台设置指定证书。

相关问题