blue_sea 发表于 2022-3-10 16:56

ngin正向代{过}{滤}理502问题

root@wy-virtual-machine:/usr/local/nginx/sbin# curl 127.0.0.1:8888/1b.html
<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.20.2</center>
</body>
</html>

查看日志信息为:
4228#0: *81 SSL_do_handshake() failed (SSL: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:SSL alert number 40) while SSL handshaking to upstream, client: 127.0.0.1, server: , request: "GET /1b.html HTTP/1.1", upstream: "https://192.168.81.151:443/1b.html", host: "127.0.0.1:8888"

发现是ssl握手失败,通过 openssls_client -connect 192.168.81.151:443 命令,得到如下信息:
CONNECTED(00000003)
139692575930176:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:../ssl/record/rec_layer_s3.c:1543:SSL alert number 40
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 283 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---

在网上搜索资料,说是缺少SNI, 但是,我输入openssls_client -connect 192.168.81.151:443 -servername example.com,
得到的信息和之前openssls_client -connect 192.168.81.151:443 得到的信息一致,而且在nginx中添加proxy_ssl_server_name   on;也没有任何作用.
附上资料网站:   https://www.claudiokuenzler.com/blog/1120/nginx-reverse-proxy-ssl-alert-number-40-while-ssl-handshaking-upstream


想请问各位大哥,我应该如何去做?


陌路无人 发表于 2022-3-10 20:45

完整配置可以发一下,看upstream是转发到443端口,可是监听的又是8888端口,不是很明白你想干啥,一般是对443端口做内容分发,转到8888端口,然后8888端口还要配置证书。

blue_sea 发表于 2022-3-11 10:15

陌路无人 发表于 2022-3-10 20:45
完整配置可以发一下,看upstream是转发到443端口,可是监听的又是8888端口,不是很明白你想干啥,一般是对4 ...

是我想把http请求,通过nginx转发成https的我的server上面。由于nginx对于server,只是一个客户端的作用,所以在tls单向加密中无需配置证书把?

陌路无人 发表于 2022-3-11 21:33

blue_sea 发表于 2022-3-11 10:15
是我想把http请求,通过nginx转发成https的我的server上面。由于nginx对于server,只是一个客户端的作用, ...

我是先监听80端口,做一个301或者rewrite
    return 301 https://$host$request_uri;
或者
    #rewrite ^(.*)$https://$host$1 permanent;

然后就是正常的443端口upstream,转到8888,即使代{过}{滤}理我也做了证书,没啥异常

blue_sea 发表于 2022-3-11 21:42

陌路无人 发表于 2022-3-11 21:33
我是先监听80端口,做一个301或者rewrite
    return 301 https://$host$request_u ...

我这需求client端,只能通过http,没办法加上tls,所以301和rewrite都不行。我挺好奇为啥tls,没办法建链成功的,网上的资料也都是说少SNI,但是我按照他们的方法也并没有用。最后,感谢兄弟你的帮忙。
页: [1]
查看完整版本: ngin正向代{过}{滤}理502问题