我们有一个原型设置,其中 Nginx 充当负载平衡器 SSL 终止器。Nginx 后面是 GlassFish 3,它通过 HTTP(无 SSL)与其他应用服务器一起运行我们的 REST Web 服务。
所有请求https://api.example.com被重定向至 GlassFish。
目前它在同一台服务器上运行,因此我们不必担心太多安全问题(GlassFish 的应用程序端口已被阻止进行远程访问)。
然而,我们很快就需要扩展它,并且负载均衡器(Nginx 或其他)需要移动到另一台服务器。
我没有太多设置 SSL 证书的经验,所以我想知道我们的选择是什么:
- 我们是否应该为 GlassFish Server 安装 SSL 证书(可能是自签名证书)以确保通过负载均衡器后的 SSL/TLS 连接?
- Nginx 有一个 *.example.com SSL 证书。我们是否可以将同一个 SSL 证书用于两个不同的 Web 服务器,以便 Glassfish 可以直接接收子域的 HTTPS 请求(https://api.example.com) 无需经过 Nginx 或任何负载均衡器。
我将衷心感谢您的帮助。
答案1
我们是否应该为 GlassFish Server 安装 SSL 证书(可能是自签名证书)以确保通过负载均衡器后的 SSL/TLS 连接?
如果你有通配符 SSL 证书对于 *.example.com,那么您就可以避免自签名证书。您可以将glassfish主机名指定为example.com的子域(例如glassfish.example.com)。然后您可以使用proxy_ssl_verify防止 MITM 攻击并确保负载均衡器和 glassfish 之间的安全连接。
如果必须使用自签名证书,将该证书添加到受信任列表并实现proxy_ssl_verify应该可以完成这个工作。
Nginx 有一个 *.example.com SSL 证书。我们是否可以将同一个 SSL 证书用于两个不同的 Web 服务器,以便 Glassfish 可以直接接收子域的 HTTPS 请求(https://api.example.com) 无需经过 Nginx 或任何负载均衡器。
如果你指的是通配符 SSL 证书,那么是的,您可以安装相同的证书。