如果我在 Nginx 上使用反向代理,我是否需要反向代理和服务器的 SSL 证书?

If I'm using a reverse proxy on Nginx do I need an SSL certificate for the reverse proxy and the server?

所以我开始学习 nginx 和反向代理,我有一个关于 SSL 的问题,问题是我有一个这样的反向代理服务器:

upstream vnoApp {  
    server vyno.mx:81;
}

server {
    listen       80;
    server_name  app.vno.mx;

    location / {
        proxy_pass http://vnoApp/;
        proxy_set_header X-Real-IP $remote_addr;  # http://wiki.nginx.org/HttpProxyModule
        proxy_set_header Host $host;  # pass the host header - http://wiki.nginx.org/HttpProxyModule#proxy_pass
        proxy_http_version 1.1;  # recommended with keepalive connections - http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }

}

如您所料,这样做的目的是收听 http://app.vno.mx and it 'reverse proxys'' it to http://vyno.mx:81,一切正常,但现在我想为网站添加 SSL 支持,我的问题是是否必须添加一个vyno.mx 和 app.vno.mx(通配符 *vno.mx)的 SSL 证书,或者如果我只是将它添加到 app.vno.mx,它会正常工作,提前感谢大家!

没问题,您只需要面向用户的主机的证书。

附带说明一下,除非情况合理,否则通常不建议将任何内容转发到公开可用的端口和主机。

因此 - 除非有理由不这样做 - 你应该在 vyno.mx 上设置防火墙端口 81 以仅接受来自 app.vno.mx 服务器的连接。

如果它们是同一台服务器,就这样,或者使用 127.0.0.1 可能会更好。

但是,如果它们距离很远,您可能还希望加密内部连接,您可以使用 snakeoil(自签名)证书来做到这一点。