是的,這是可能的,但您需要手動配置它(只在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提供服務,則可能需要使用Read和Write 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"}]
不過要小心,如果你允許最終用戶通過您的應用程序上傳自己的證書 - 你需要確保他們上傳什麼是真的證書和沒有什麼惡意...
感謝您的答覆,我們實際上使用Layershift(Jelastic)這個具體問題。所以你的意思是沒有自動的方式來在Jelastic中添加證書? Jelastic API文檔告訴我們'BindSSL'對於這個上下文沒有用處? – xybrek
@xybrek我用更詳細的信息更新了我的答案。它也可能有助於更多地瞭解爲什麼你想通過API來做到這一點(你是否動態地爲你的環境添加更多的域名:多少/什麼頻率?)。 –
Damien,感謝您的回覆,確實是我們需要的是讓我們的用戶上傳他們自己的SSL認證使用我們的Web應用程序儀表板。通過這種方式,他們可以將自己的自定義SSL綁定到通過nginx指向我們的Java Server的域。從你更新的答案,似乎有一個解決方案使用Jelastic的文件讀/寫API,問題是,當證書存儲在位置時,它會自動處理SSL,從我使用Jelastic的經驗,當我上傳一個自定義證書它工作通過儀表板中可用的3個文本框進行上傳。 – xybrek