NGINX缓存代理因SSL23_GET_SERVER_HELLO:sslv3警报握手失败而失败

时间:2014-08-15 16:05:08

标签: caching nginx proxy

作为缓存代理的NGINX在通过HTTPS从CloudFront服务器获取内容时遇到问题:

这是NGINX的错误日志摘录:

2014/08/14 16:08:26 [错误] 27534#0:* 11560993 SSL_do_handshake()失败(SSL:错误:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败),而SSL握手到上游,客户端:82.33.49.135,服务器:localhost,请求:" GET /static/images/media-logos/best.png HTTP / 1.1",上游:" https://x.x.x.x:443/static/images/media-logos/best.png&#34 ;,

我尝试了不同的代理设置,如proxy_ssl_protocols和proxy_ssl_ciphers,但没有任何组合。

有什么想法吗?

1 个答案:

答案 0 :(得分:64)

我有完全相同的问题,花了几个小时...... 我猜你使用的是旧版本的nginx(低于1.7)? 在nginx 1.7中,您可以使用this directive

proxy_ssl_server_name on;

这将迫使nginx使用SNI 此外,您应该设置SSL协议:

proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

对于早期版本,您可以使用此补丁(但我无法验证这是否有效):

http://trac.nginx.org/nginx/ticket/229