2017-07-04 53 views
1

我正在設置Azure中的Service Fabric集羣,並希望通過https運行Web API(使用.NET Core)。我想使用我的CA簽名通配符(* .mydomain.com)證書來訪問此API。但是當我創建羣集時,我對它的使用位置感到困惑,它是羣集還是客戶端證書?我正在考慮客戶端證書,但文檔指出這是針對管理工具(即資源管理器)的,所以我不確定如何繼續。服務結構,我使用哪種證書?

是的,我已經閱讀了大量的帖子和資源,但我仍然覺得很困惑。

回答

0

有三種證書類型。這裏是他們的總結。

羣集證書用於Explorer端點並部署到主節點。因此,如果您在那裏添加您的*.mydomain.com通配符證書,並將CNAME某事(例如manage.mydomain.com)添加到[yourcluster].[region].cloudapp.azure.com,那麼當您啓動管理端點時,該證書將被呈現給Web瀏覽器。

反向代理SSL證書部署到每個節點,並在使用Service Fabric的內置反向代理功能時使用。在這種情況下,這是當您點擊https://api.mydomain.com/YourAppName/YourService/Resource(其中api.mydomain.com是另一個CNAME到yourcluster.region.cloudapp.azure.com)時正在使用的內容。這用作運行自己的反向代理或其他卸載層(應用程序網關,IIS,nginx,API管理等)的替代方法。

客戶端證書用於替代管理端點的Azure Active Directory身份驗證。因此,您不必管理AAD中的用戶(使用_Cluster AAD應用程序和管理員/只讀角色),而是通過將管理證書(管理員或只讀)分發給受信任的用戶來管理訪問。

您也可以在證書翻轉情況下使用這些證書的輔助證書。

+0

看起來這是正確的解決方案。我已經嘗試設置它,但節點不會加入羣集。我認爲ARM模板存在一些小錯誤。 –

0

我們使用它的方式是在服務架構羣集前配置應用程序網關,並將Web證書上載到應用程序網關(並且dns指向應用程序網關)在此情況下,SSL在應用程序網關處終止。

另一種可能性是在服務架構羣集中的每個節點上終止SSL,在這種情況下,您需要確保將證書部署到每個節點。

至於集羣與客戶端證書的兩難問題,我也很困惑,但我認爲答案既不是。客戶端證書不確定,因爲在運行服務結構管理員ps腳本時,此證書用於將您標識爲管理員。

我不認爲這是集羣證書或者,這裏是MS文檔說它是幹什麼用的:需要

集羣和服務器證書保護集羣,並防止其未經授權的訪問。它通過兩種方式提供集羣安全性: 集羣身份驗證:驗證集羣聯合的節點到節點通信。只有能夠證明其身份的節點才能加入羣集。 服務器身份驗證:向管理客戶端驗證集羣管理端點,以便管理客戶端知道它正在與真實集羣交談。此證書還爲HTTPS管理API和通過HTTPS的Service Fabric Explorer提供SSL。

就我所讀到的內容而言,此證書用於內部羣集身份驗證,並且還用於管理工具,因此您可以使用管理工具來處理正確的羣集。

+0

我確實想過在集羣前使用應用程序網關,但我仍然需要公開API,只要我這麼做,它就是公開的。除非有辦法保護網關和集羣之間的連接? –

+0

獲取證書到節點是一件容易的事情,我只是將它上傳到密鑰庫並將其包含在ARM腳本的osProfile中。然後它會自動部署。我仍然不確定我們正在處理哪種證書類型(客戶端或集羣)。 –

+0

是的,我也讀過這個,很困惑,因爲我期望看到一些關於保護API的連接。你可能是對的,我不得不在每個節點上手動安裝證書。這看起來很奇怪,因爲它超出了ARM模板的osProfile。 –