NGINX proxy, 502 error while SSL handshaking to upstream

Juan Matías jmrepetti at gmail.com
Wed Mar 5 14:57:54 UTC 2014


Hello!

On Tue, Feb 25, 2014 at 04:34:34PM +0100, Juan Matías wrote:

>* Hello everyone, I'm new here and this my first post in this mailing list,
*> >* Maybe this is a frequently answered question but I could't find
a solution.
*>* Maybe is a "layer 8" issue.
*> >* Right now, I have a Nginx(1.0.8) proxy running on Ubuntu 10.04 32bits,
*>* OpenSSL 0.9.8  doing a https upstream on port 33195. Here is a piece of the
*>* nginx.conf file:
*> >* ......
*>*   location /external_services {
*>*       proxy_pass  https://x.x.x.x:33195/external_service;
<https://x.x.x.x:33195/external_service;>
*>*     allow x.x.x.x;
*>*     deny all;
*>*   }
*>* ......
*> > >* It is working, but I need to migrate this proxy to a new
server. This new
*>* server runs Ubuntu 12.04, OpenSSL 1.0.1 and Nginx 1.5.10.
*> >* This server receive an http://myproxy/external_services
<http://myproxy/external_services> request and proxy
*>* it to https://x.x.x.x:33195/external_service;
<https://x.x.x.x:33195/external_service;> (http to https)
*> >* When I try to access http://myproxy/external_services
<http://myproxy/external_services> on the new server, I
*>* got a 502 error and I see this message in error.log :
*> >*     "peer closed connection in SSL handshake while SSL handshaking to
*>* upstream"
*> >* I found that I can connect(from the proxy server) to
*>* https://x.x.x.x:33195/external_service
<https://x.x.x.x:33195/external_service> using openssl, doing this:
*> >*     $ openssl s_client -connect
https://x.x.x.x:33195/external_service-no_tls1_1
<https://x.x.x.x:33195/external_service-no_tls1_1>
*> >* I tried to disable TLSv1.1 in Nginx using the directive: ssl_protocols
*>* SSLv3 TLSv1; but nothing change.
*
You have to use proxy_ssl_protocols, not ssl_protocols.  See
http://nginx.org/r/proxy_ssl_protocols.

The proxy_ssl_ciphers directive may help, too, depending on what
exactly triggers the problem on your backend.

-- 
Maxim Douninhttp://nginx.org/


Thanks Maxim Dounin for the answer
I tried that but did not work.

I tried using directives on nginx config file but the issue continue. I
can't ensure but looks like Nginx was using TLSv1.1 or 1.2 anyway and the
SSL handshake failed. And I didn't find a way to disable this version of
the protocol.

So I fixed the problem compiling nginx(1.0.15) from source using openSSL
0.9.8e. This version of OpenSSL doesnt support TLSv1.1. And that's works. I
have no option, the provider that I'm dealing with doesn't support TLSv1.1
and they are not going to update his service.


Thanks,
Matías.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20140305/dfd06ef6/attachment.html>


More information about the nginx mailing list