目前,我正在使用 nginx 作为 https 上的反向代理,并且代理的所有内容本身都是通过 https 进行的。 SSL 终止发生在 Nginx 上,由于流量是通过 https 传输的,因此在继续传输之前会再次加密。
我的第一反应是,我的面向公众的服务器必须使用签名证书并使用来自 nginx 的 SSL 直通。结果 nginx 不允许你这样做。因此我开始研究 haproxy,因为它可以进行 SSL 直通。
读了很多资料后,我开始怀疑这些是否真的很重要。我可以在自己的网络内使用自签名证书。
是否有理由在 nginx / haproxy 上使用与我的服务器相同的证书?是否有理由不对内部流量使用自签名证书?
答案1
从技术角度来说,没有理由要求您在内部服务器上使用外部证书,除非您的配置中内部服务器也可以从外部直接访问,但这在大多数环境中似乎不太可能发生。
在您控制 SSL 连接两端的环境中,自签名是可以的,HAProxy 的后端和内部应用程序服务器的前端就是这种情况。
答案2
我认为使用内部证书是更好的解决方案。出于安全原因,您不会增加额外的机会来破坏您的公共证书。