Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NGinx上游的SSL握手失败_Ssl_Nginx_Self Signed - Fatal编程技术网

NGinx上游的SSL握手失败

NGinx上游的SSL握手失败,ssl,nginx,self-signed,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服务器和应用程序之间创建安全连接。客户端和NG

我正在上游使用自签名证书。上游可以从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;
        }
下面是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"

proxy\u ssl
语句用于客户端证书身份验证。您不需要告诉Nginx服务器的CA即可进行连接。是否
ssl\u证书
ssl\u证书
用于客户端证书身份验证?否。这些用于浏览器和反向代理之间的服务器证书。您没有将
--cert
选项与
curl
一起使用,因此您没有使用客户端证书连接上游,因此不需要
代理ssl\u证书。
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"