我有一个用例,我必须从 EC2 上托管的 nginx 调用 AWS API 网关。由于 API 网关默认使用 SSL,因此我尝试使用 SSL 设置 nginx 上游,但无法成功配置它。
我收到以下错误:
SSL_do_handshake() failed (SSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure) while SSL handshaking to upstream, client: yy.yy.yy.yy, server: api-gateway.cloud, request: "GET /devint/echo HTTP/1.1", upstream: "https://zz.zz.zz.zz:443/devint/echo", host: "xx.xx.xx.xx:8000"
我应该如何解决它。
我也要去这个兔子洞。CloudFront 需要在接受请求之前发送一些额外的标头。
这似乎符合 AWS 的预期:
set $upstream_endpoint ROOT_API_GATEWAY_FQDN;
resolver DNS_RESOLVER_IP;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
proxy_ssl_server_name on;
proxy_pass https://$upstream_endpoint;
proxy_buffering off;
解决您的特定问题的部分是设置proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2
和proxy_ssl_server_name on
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句