NGINX SSL 转发代理配置

问题描述 投票:0回答:3

我知道 NGINX 不应该用作转发代理,但我有这样做的要求......无论如何,显然让 http 作为转发代理并不难,但在尝试配置时会出现问题https。我生成了一些自签名证书,然后尝试连接到 https://www.google.com ,它给了我错误 ERR_TUNNEL_CONNECTION_FAILED。这个问题与我的证书有关,但我不知道如何解决这个问题。有谁知道如何实现这个功能吗?

这是我的配置

server {
    listen 443 ssl;
    root /data/www;

    ssl on;
    ssl_certificate /etc/ssl/certs/server.crt;
    ssl_certificate_key /etc/ssl/certs/server.key;

    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;

    location / {
            resolver 8.8.8.8;
            proxy_pass https://$http_host$uri$is_args$args;
    }
}
ssl nginx proxy
3个回答
8
投票

NGINX不支持HTTPS正向代理的原因是它不支持CONNECT方法。但是,如果您有兴趣将其用作 HTTPS 转发代理,您可以使用 ngx_http_proxy_connect_module


0
投票

我能够使用流模块通过此配置配置 SSL/TLS 转发代理。

stream {
    upstream web_server {
           server my_server_listening_on:443;
    }

    server {
        listen 443;
        proxy_pass web_server;
    }
}

资源:


0
投票

我知道这是一篇旧文章,但我认为最新的 nginx 发行版可能在 https 代理或流模块上有所改进。有没有人有办法让流模块工作,以便让 https 代理在 nginx 上工作?我们尝试了 Kenrick 上面提供的配置,但我们还尝试将流量重定向到 localhost:443 服务 - 换句话说,创建一个强制门户,以便任何 https 请求都重定向到代理服务器本身上的页面。

此时,我们很高兴能让 https 代理正常工作(即将请求传递到预期的网页)。我们收到“无法连接到主机”消息,并且连接被代理服务器断开.

© www.soinside.com 2019 - 2024. All rights reserved.