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

时间:2015-10-17 17:39:00

标签: ssl nginx proxy reverse-proxy

所以我开始了解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并反对代理''它到http://vyno.mx:81,一切正常,但现在我想为网站添加SSL支持,我的问题是我是否必须向vyno.mx和app.vno.mx(通配符)添加SSL证书* vno.mx),或者如果我只是将它添加到app.vno.mx它会工作正常,多亏了所有提前!

1 个答案:

答案 0 :(得分:1)

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

作为旁注,除非情况合理,否则将任何内容转发给公共港口和东道主通常是不明智的。

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

如果它们是同一台服务器,那就是它,或者使用127.0.0.1甚至更好。

但是,如果它们相距遥远,您可能也希望加密内部连接,您可以使用snakeoil(自签名)证书进行加密。