2016-07-06 63 views
0

我想問問Nginx負載均衡器是否可以在Jelastic中的一個IP上配置多個SSL。是否可以在一個Jelastic應用上設置多個SSL?

該用法適用於將接收來自多個自定義域的請求的代理服務器。

例如:

example-proxy.com點分配到Jelastic碼頭申請公網IP地址。

現在自定義域指向碼頭應用

custom-domain-example.com CNAME wwwexample-proxy.comcustom-domain-example-N.org CNAME wwwexample-proxy.com

  • 是有可能有這種設置與Jelastic?
  • 這可以使用現有的Jelastic API來完成嗎?現在我在API文檔中看到的是BindSSL,但它似乎只能綁定一個,這是正確的嗎?

回答

2

是的,這是可能的,但您需要手動配置它(只在nginx配置中)而不是使用Jelastic儀表板/ API SSL功能。

需要記住的另一點是,因爲每個容器有1個IP,因此只能通過SNI提供多個SSL證書。這可能影響你根據什麼瀏覽器用戶使用的:在大多數情況下,它現在是OK(舊的移動操作系統和Windows XP是主要的例外)

BindSSL API方法可以讓你自動配置一個 SSL證書在你的環境的外部節點(你的情況下爲Nginx負載平衡器)。如果您多次嘗試BindSSL,則只需替換現有證書(不添加多個證書)即可。

基本上這個功能是在SNI被廣泛接受之前建立的,所以它被假設爲1個SSL證書。每1個環境。您可以閱讀更多關於SNI的信息,以便根據您的需求作出明智的決定:http://blog.layershift.com/sni-ssl-production-ready/

您需要的替代選擇是購買多域SSL證書(SAN證書)。這使您可以在一個證書中包含多個主機名。既然您提到您是我們的客戶,您可以聯繫我們的SSL團隊以獲取此選項的詳細信息/定價。

如果您仍想使用多個SSL證書並通過SNI提供服務,則可能需要使用ReadWrite API方法來保存SSL證書部分和配置。你的Nginx節點上的文件。

不要忘記在任何配置後重新啓動nginx服務(您可以使用RestartNodeById)。變化。

編輯:正如您所提到的,您的最終用戶將擁有對此過程的控制權,您可能更願意使用reload而不是restart(請參閱http://nginx.org/en/docs/beginners_guide.html#control)。

您可以調用通過使用ExecCmdById Jelastic API,與commandList=[{"command": "sudo service nginx reload"}]

不過要小心,如果你允許最終用戶通過您的應用程序上傳自己的證書 - 你需要確保他們上傳什麼是真的證書和沒有什麼惡意...

+0

感謝您的答覆,我們實際上使用Layershift(Jelastic)這個具體問題。所以你的意思是沒有自動的方式來在Jelastic中添加證書? Jelastic API文檔告訴我們'BindSSL'對於這個上下文沒有用處? – xybrek

+0

@xybrek我用更詳細的信息更新了我的答案。它也可能有助於更多地瞭解爲什麼你想通過API來做到這一點(你是否動態地爲你的環境添加更多的域名:多少/什麼頻率?)。 –

+0

Damien,感謝您的回覆,確實是我們需要的是讓我們的用戶上傳他們自己的SSL認證使用我們的Web應用程序儀表板。通過這種方式,他們可以將自己的自定義SSL綁定到通過nginx指向我們的Java Server的域。從你更新的答案,似乎有一個解決方案使用Jelastic的文件讀/寫API,問題是,當證書存儲在位置時,它會自動處理SSL,從我使用Jelastic的經驗,當我上傳一個自定義證書它工作通過儀表板中可用的3個文本框進行上傳。 – xybrek

相關問題