V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
ifaii
V2EX  ›  NGINX

如何使用 Nginx 反代一个内部自签名 https 到外部站点

  •  
  •   ifaii · 2017-09-19 12:38:50 +08:00 · 4815 次点击
    这是一个创建于 2622 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先由一个内部 openshift 集群中的 docker registry URL,通过 openshift 的 Route 功能生产,在内部可用。
    即内部地址 https://docker-registry-default.apps.vpclub.io ,自签名不受信任

    现在需要将其放到公网上访问,通过另一个域名,在外部 NAT 443 端口的内部主机上做反代理,配置如下:

    结果无法访问 https://registry.vpclub.cn
    尝试了多种方法均没解决,求指点!

    • 内部地址必需用域名才能访问
    • 外部的 HTTPS 证书是受信任的,各位可以尝试访问
    5 条回复    2017-09-22 14:52:18 +08:00
    a1044634486
        1
    a1044634486  
       2017-09-19 12:43:02 +08:00
    应该无解吧。浏览器就不信任你这个 ca 机构
    aqqwiyth
        2
    aqqwiyth  
       2017-09-19 13:29:13 +08:00
    典型的 HTTPS 劫持.

    第一步
    nginx 本地弄一个私钥主要是反代 HTTPS, 客户端(外网用户)信任 nginx 的证书

    第二步
    nginx proxy 目标地址的 HTTPS, 需要装载目标地址的证书 proxy_ssl_xxxx http://nginx.org/en/docs/http/ngx_http_proxy_module.html

    你已经做了第一步
    Niphor
        3
    Niphor  
       2017-09-19 13:37:43 +08:00
    ```
    proxy_ssl_trusted_certificate ...';
    proxy_ssl_verify off;
    ```

    不过话说回来,干嘛不在原来的 server_name 里加个 registry.vpclub.cn ,何必再套个 nginx...
    Niphor
        4
    Niphor  
       2017-09-19 13:40:17 +08:00
    而且 这样 你这个 nginx 承担了 解密 又加密 ssl,直接配个转发不更好...
    jiewuza
        5
    jiewuza  
       2017-09-22 14:52:18 +08:00
    我也有类似的需求,但是看了楼上几位,有点困惑,到底能不能实现?
    我这边的应用是这样的:
    从第三方(比如天气服务,具体名称就不给了,以免广告嫌疑)获得了 appid
    想让用户访问我自己的后台时,通过 nginx 代理(设置 appid 等头部)直接访问第三方
    我的服务和第三方服务都需要 https 访问

    我目前这样的设置是不行的,直接 301 回来了
    location /test/ {
    proxy_pass https://xxx/path/to/api;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header app_id "...";
    proxy_set_header app_key "...."
    proxy_set_header Content_Type "application/json";
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host "xxx.xxx.com";
    }
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2709 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:17 · PVG 20:17 · LAX 04:17 · JFK 07:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.