客户端SSL无法与AWS API网关一起工作



我在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网关控制台直接向awsapigateway.crt添加PEM编码的公钥。这是正确的吗?

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

Api Gateway团队。

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

如果由于某种原因控制台中的测试函数出现问题,我也会使用实际部署的API进行测试。请确保使用Stage设置来指定证书。

相关内容

  • 没有找到相关文章

最新更新