SSL error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:SSL alert

SSL error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:SSL alert

我正在尝试设置 Nginx 保留代理,它重定向到需要证书才能正常运行的特定主机。但是当我从浏览器访问端点时出现此错误:

2020/11/05 19:55:21 [error] 6334#6334: *111317 SSL_do_handshake() 
failed (SSL: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:SSL alert n$

这里是nginx的配置文件:

server {
        listen 443 ssl;
        listen [::]:443 ssl;

        ssl_certificate /home/ubuntu/appname.com.pem;
        ssl_certificate_key /home/ubuntu/appname.com.key;

        server_name appname.com;

        ssl_protocols TLSv1.2;

        set $target_server targetapp.com:443;

        location /api/ {
        rewrite ^/api(/.*)  break;
        proxy_pass https://$target_server/$uri$is_args$args;
        proxy_set_header X-Forwarded-Host $server_name;
        proxy_set_header Host appname.com;
        error_log /var/log/nginx/target_server.log debug;
        proxy_set_header Accept-Encoding text/xml;
        proxy_ssl_certificate /home/ubuntu/target_server_client.pem;
        proxy_ssl_certificate_key /home/ubuntu/target_server_key.pem;
        proxy_ssl_trusted_certificate /home/ubuntu/target_server_CA.pem;
        proxy_ssl_verify off;
        proxy_ssl_verify_depth 1;
        proxy_ssl_server_name on;
        }
}

我尝试 enable/disable proxy_ssl_server_nameproxy_ssl_verify,但都没有解决问题。

当我通过 SSH 连接到该服务器并尝试使用以下 curl 命令时,我可以获得预期的正确响应,只有在尝试从浏览器访问端点时才会如此:

curl -vv --cert target_server_client.pem --key target_server_key.pem  --cacert target_server_CA.pem --url https://targetapp.com/api 2>&1|less

我不确定可能是什么问题,我怀疑 Nginx 代理在端点中使用 IP 地址而不是主机名,这就是它给出 SSL 验证问题的原因。因为它通过 curl 命令正常工作。我也尝试启用 proxy_ssl_server_name,但没有帮助。

@Steffen Ullrich 提到的问题出在中间证书中