我们的网络应用程序具有以下设置:
Nginx(静态内容) - > Tomcat(API托管在这里)
我们将这两台服务器托管在公共云中,可能在不同的物理服务器上。
我们希望将我们的网站设为https,因此为我们的域名购买了SSL证书,以保护任何进入Nginx的内容。
现在我的问题是,如何保护从Nginx到Tomcat API的请求?为确保连接,我是否需要购买单独的SSL证书?如果是这样,tomcat上的API没有域名,那么我应该买什么?我不认为我应该使用IP地址购买..所以什么是正确的方法?感谢。
答案 0 :(得分:3)
您有很多选择:
使用http进行Nginx和Tomcat之间的连接。这实际上是非常普遍的(虽然怀疑它会变得不那么常见,因为https成为常态)并且如果Tomcat不能从互联网上公开访问,那么它是相当安全的(尽管任何内部员工理论上可以嗅到这个http流量,具体取决于具体如何您的网络已设置)。如果tomcat在同一台服务器上,那么由于网络流量不应该离开服务器,因此更安全,因此不应该是可以嗅探的 - 至少在理论上是这样。虽然在另一方面通常你想要尽可能少地在公共服务器上(理想情况下只是Nginx),所以最好的做法不是在同一台服务器上托管tomcat。
为Tomcat使用自签名SSL证书而不是真正的"真实" CA提供了证书并配置Nginx以接受它(如果它默认情况下还没有 - 通常Web服务器不会检查SSL配置以进行代理连接)。
购买通配符证书(例如* .example.com),以便您也可以将它用于Tomcat服务器(例如tomcat.example.com),而不必将该服务器暴露给Internet。注意这些更贵。
通过为此添加DNS条目并通过验证(通过临时打开Internet或通过DNS或类似方式进行身份验证)获取Tomcat服务器的真实证书。不能说这是诚实的。
请注意,您无法购买带有IP地址的证书。由于您没有拥有域名的IP地址,因此受到限制。此外,大多数内部IP地址不是真正的IP地址,而是在内部网络中也用于其他公司的NAT地址,因此绝对希望能够获得这些地址的证书!