如何解决Nginx 反向代理与客户端验证到 NodeJs 应用程序
我正在尝试为 NodeJs 应用设置带有客户端证书验证的反向代理。
我收到了 502 Bad Gateway
。
在阅读 Nginx 文档和许多问题后仍然无法使其工作。我的最后一次尝试是这个配置:
events {
}
http {
upstream app {
server 127.0.0.1:8443;
keepalive 64;
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /home/marcos/certs/server.pem;
ssl_certificate_key /home/marcos/certs/server.key;
ssl_client_certificate /home/marcos/certs/ca.crt;
ssl_verify_client on;
proxy_ssl_server_name on;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass https://app/;
proxy_redirect off;
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
}
}
}
/var/log/nginx/error.log
上的错误是:
2021/03/09 22:21:44 [crit] 6083#6083: *107 SSL_read() failed (SSL: error:1409445C:SSL routines:ssl3_read_bytes:tlsv13 alert certificate required:SSL alert number 116) while reading response header from upstream,client: 127.0.0.1,server: localhost,request: "GET / HTTP/1.1",upstream: "https://127.0.0.1:8443/",host: "localhost"
使用 nginx/1.18.0 (Ubuntu)
和自签名证书。
当我的应用程序和 Nginx 上禁用客户端证书验证时,它可以工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。