Nginx https代理,不要终止ssl

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx https代理,不要终止ssl相关的知识,希望对你有一定的参考价值。

我想将某个域的https请求代理到另一个地址:

server {
    server_name site1;
    listen 443;
    ssl on;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://172.17.0.1:44110;
    }
}

nginx抱怨:

nginx: [emerg] no "ssl_certificate" is defined for the "ssl" directive in /etc/nginx/nginx.conf:33

关键是证书实际上在代理服务器上。

如何告诉nginx不终止ssl层,只需将其代理到配置的url?

我正在寻找的是类似于this,但有server_name的支持。

答案

您可能需要添加:

proxy_ssl_session_reuse off; 

here

另一答案

据我所知,在NGINX中你想做的事情是不可能的。我实际上已经写出了一个答案,结果证明你重复了你提供给另一个StackOverflow答案的链接。如果你考虑你在问什么,那么NGINX能够在中间进行客户端浏览器和你的源之间的通信是有效的。我不认为你真的希望这是可能的,因为它会使SSL / TLS毫无用处。

您将需要执行链接的StackOverflow应答对stream模块执行的操作,或者您需要移动证书以由NGINX托管。

Cloudflare创建了"Keyless" SSL,允许将私有材料托管在其他地方,但只有它的原始方面是开源的。您必须修改NGINX才能实现协议的代理端,尽管也许其他人也已经这样做了。这可能对您的需求有些过分。

以上是关于Nginx https代理,不要终止ssl的主要内容,如果未能解决你的问题,请参考以下文章

https的设置

在 Kubernetes 上使用 Nginx SSL 代理运行 Meteor 应用程序

在 nginx-config.yaml 中设置 HTTP 到 HTTPS 重定向(在 AWS ELB 中终止 SSL + NGINX Ingress 进行路由)

Nginx 配置 HTTPS SSL 代理

如何用 Nginx 配置透明 HTTP 和 HTTPS 代理

如何用 Nginx 配置透明 HTTP 和 HTTPS 代理