2016-05-29 108 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地址,所以絕對會希望能夠獲得這些證書!