Nginx 反向代理不起作用

Nginx 反向代理不起作用

我的设置是这样的

ngnix(aws) -> tomcat 服务器(在同一个 aws 服务器上)

$ nginx -v
nginx 版本:nginx/1.14.0 (Ubuntu)

$ openssl 版本
OpenSSL 1.1.0g 2017 年 11 月 2 日

$ lsb_release -a
没有可用的 LSB 模块。
分销商 ID:Ubuntu
描述:Ubuntu 18.04.1 LTS
发行版:18.04
代号:bionic

/etc/nginx/conf.d/myapp.conf 的内容

server {
        listen      80;
        server_name myapp.com;
        return 301 https://$server_name$request_uri;
}

server {
        listen                *:443 ;
        ssl on;
        ssl_certificate /tmp/nginx.crt;
        ssl_certificate_key /tmp/nginx.key;
        server_name           myapp.com;
        access_log            /var/log/nginx/myapp.access.log;
        error_log  /var/log/nginx/myapp.error.log;

        location / {
               proxy_pass http://localhost:8764;
        }
}

当我尝试从浏览器访问 myapp 时,我得到了ERR_SSL_VERSION_OR_CIPHER_MISMATCH

有人建议我尝试使用 OpenSSL 进行连接,

openssl s_client -connect myapp.com:443 
CONNECTED(00000003)
140211097622168:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:769:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 305 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1533215612
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---

有人能指出这里的问题是什么吗?

答案1

您需要指定服务器名称,例如:

openssl s_client -servername myapp.com -connect myapp.com:443 

您在连接中提供的 IP 地址会被解析为 IP 地址,并且服务器永远不会看到它。因此服务器不知道要使用什么证书。我忽略了“AWS”。您为 myapp.com 获取的 IP 地址可能被数百或数千个系统使用。

相关内容