NGinx上游SSL握手失败

时间:2019-12-05 07:12:39

标签: ssl nginx self-signed

我在上游使用了自签名证书。上游可以从cURL访问,但不能从NGinX访问。这是我遵循的过程。

我更改了主机文件,并添加了带有域名的上游IP。

10.0.1.2 xxx.yyy.com

然后我使用下面的命令访问该应用程序,并且成功。

curl GET "https://xxx.yyy.com/test" --cacert /etc/upstream.ca-cert.crt -v

然后,我想通过NGinX访问该应用程序。因此,我想在客户端与NGinX服务器之间以及NGinX服务器与应用程序之间创建安全连接。客户端与NGinX之间的连接工作正常,但NGinX服务器与应用程序之间的握手无法正常工作。

这些是配置。

        listen 443 ssl;
        ssl_certificate /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key;

        server_name xxx.yyy.com;

        location / {
                include /etc/nginx/proxy_params;
                proxy_pass https://backend-server;
                proxy_ssl_certificate /etc/nginx/ssl/upstream.ca-cert.crt;
                proxy_ssl_certificate_key /etc/nginx/ssl/upstream.ca-cert.key;
                proxy_ssl_server_name on;
                rewrite ^(.*):(.*)$ $1%3A$2;
        }
upstream backend-server {
        ip_hash;
        zone backend 64k;
        server 10.0.1.2:443     max_fails=1000 fail_timeout=30s;
}

以下是NGinX中的错误日志。

2019/12/05 06:46:40 [error] 5275#0: *2078 peer closed connection in SSL handshake while SSL handshaking to upstream, client: xxx.xxx.xxx.xxx, server: xxx.yyy.com, request: "GET /test HTTP/1.1", upstream: "https://10.0.1.2:443/carbon", host: "xxx.yyy.com"

0 个答案:

没有答案