2017-05-08 2 views
1

Ich habe einen Anwendungsfall, in dem ich AWS API Gateway von einem Nginx aufrufen muss, das auf EC2 gehostet wird. Da das API-Gateway standardmäßig SSL verwendet, habe ich versucht, nginx upstream mit SSL zu konfigurieren, konnte es aber nicht erfolgreich konfigurieren.Kommunikation zwischen Nginx & AWS API Gateway

erhalte ich den Fehler unten:

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" 

Wie soll ich es Festsetzung nähern.

+0

Sieht aus wie Nginx versucht, SSL v3 zu verwenden. –

+0

Ich denke, Sie können dies mit @Angelo R. geantwortet markieren –

Antwort

5

Ich gehe auch dieses Kaninchenloch hinunter. CloudFront benötigt einige zusätzliche Header, die gesendet werden müssen, bevor die Anfrage akzeptiert wird.

Dies scheint mit in-line zu sein, was AWS erwartet:

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; 

Der Teil, setzt proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2 und proxy_ssl_server_name on Ihr Problem löst.