购买nginx和tomcat设置的ssl证书

时间:2016-05-29 17:45:07

标签: tomcat ssl nginx https

我们的网络应用程序具有以下设置:

Nginx(静态内容) - > Tomcat(API托管在这里)

我们将这两台服务器托管在公共云中,可能在不同的物理服务器上。

我们希望将我们的网站设为https,因此为我们的域名购买了SSL证书,以保护任何进入Nginx的内容。

现在我的问题是,如何保护从Nginx到Tomcat API的请求?为确保连接,我是否需要购买单独的SSL证书?如果是这样,tomcat上的API没有域名,那么我应该买什么?我不认为我应该使用IP地址购买..所以什么是正确的方法?感谢。

1 个答案:

答案 0 :(得分:3)

您有很多选择:

  1. 使用http进行Nginx和Tomcat之间的连接。这实际上是非常普遍的(虽然怀疑它会变得不那么常见,因为https成为常态)并且如果Tomcat不能从互联网上公开访问,那么它是相当安全的(尽管任何内部员工理论上可以嗅到这个http流量,具体取决于具体如何您的网络已设置)。如果tomcat在同一台服务器上,那么由于网络流量不应该离开服务器,因此更安全,因此不应该是可以嗅探的 - 至少在理论上是这样。虽然在另一方面通常你想要尽可能少地在公共服务器上(理想情况下只是Nginx),所以最好的做法不是在同一台服务器上托管tomcat。

  2. 为Tomcat使用自签名SSL证书而不是真正的"真实" CA提供了证书并配置Nginx以接受它(如果它默认情况下还没有 - 通常Web服务器不会检查SSL配置以进行代理连接)。

  3. 购买通配符证书(例如* .example.com),以便您也可以将它用于Tomcat服务器(例如tomcat.example.com),而不必将该服务器暴露给Internet。注意这些更贵。

  4. 通过为此添加DNS条目并通过验证(通过临时打开Internet或通过DNS或类似方式进行身份验证)获取Tomcat服务器的真实证书。不能说这是诚实的。

  5. 请注意,您无法购买带有IP地址的证书。由于您没有拥有域名的IP地址,因此受到限制。此外,大多数内部IP地址不是真正的IP地址,而是在内部网络中也用于其他公司的NAT地址,因此绝对希望能够获得这些地址的证书!