2016-05-29 156 views
1

我们的Web应用程序有这种设置:购买SSL证书

Nginx的(静态内容) - > Tomcat的(API都在这里举办)

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

我们想让我们的网站https,所以为我们的域名购买了SSL证书,它保护所有进入Nginx的东西。

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

回答

3

你已经有多种选择:

  1. 为Nginx的和Tomcat之间的连接使用HTTP。这实际上目前非常普遍(尽管怀疑它会变得不那么常见,因为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服务器的真正证书。不会说这是诚实的。

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