ssl - NGINX SSL 转发代理配置

标签 ssl nginx proxy

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

最佳答案

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

关于ssl - NGINX SSL 转发代理配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46330313/

相关文章:

ssl - Wget TLS SNI 支持设置服务器名称

apache - LetsEncrypt SSL 错误 - SSL 例程 :ssl3_get_record:wrong version number

node.js - 使用 NGINX 提供静态文件时如何响应 Node.js 的 404?

windows - 如何为 gem 设置代理服务器?

node.js - 覆盖低级 node.js 模块

ssl - Socket.IO:跨域请求被阻止:同源策略不允许读取远程资源

android - 为什么android会得到错误的ssl证书? (两个域,一台服务器)

Django uwsgi 导入错误

android - 如何在 Chrome 或 Stock 浏览器中以编程方式将每个 Web 请求重定向到本地服务器?

node.js - Nginx 多个 Node JS Express 应用程序的多个位置