【问题标题】:NGINX SSL Forward Proxy ConfigNGINX SSL 正向代理配置
【发布时间】:2025-12-15 01:35:01
【问题描述】:

我知道 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;
    }
}

【问题讨论】:

  • 不要使用 google 选择一个不使用 HSTS 的网站
  • 我试过很多网站,他们都有同样的问题。例如,当我转到 purple.com 时遇到同样的错误,我怀疑它使用 HSTS

标签: ssl nginx proxy


【解决方案1】:

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

【讨论】: