NGINX作为缓存代理,通过HTTPS从CloudFront服务器拉取内容时遇到问题:
这是NGINX错误日志的摘录:
2014/08/14 16:08:26 error 27534#0:*11560993 SSL_do_handshake()失败( SSL : error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3告警握手失败)SSL握手上行,客户端: 82.33.49.135,服务端:本地主机,请求:"GET /static/images/media-logos/best.png HTTP/1.1",上行:"https://x.x.x.x:443/static/images/media-logos/best.png",
我尝试了不同的代理设置,如proxy_ssl_protocols和proxy_ssl_ciphers,但组合都不起作用。
有什么想法吗?
发布于 2014-08-16 00:09:40
我也遇到了同样的问题,花了几个小时...我猜你使用的是旧版本的nginx (低于1.7)?在nginx1.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
2019更新:尽量避免使用TLSv1和TLSv1.1,尽量禁用。我将把它们留在答案中,因为它们对SNI仍然有效。
https://stackoverflow.com/questions/25329941
复制相似问题