共用方式為


將容器化應用程式部署至 Azure 時設定 HTTPS

當您部署容器化應用程式時,通常會使用 HTTPS 通訊協定進行加密、安全的通訊。 安全通訊是由傳輸層安全性 (TLS) 實作,它會使用安全套接字層 (SSL) 取代先前的方法。

先決條件

先決條件

  • Docker Desktop
  • Visual Studio 已安裝 ASP.NET 和 Web 開發Azure 開發 工作負載和/或 .NET 桌面開發 工作負載。

開發測試憑證

在開發期間,Visual Studio 會使用自我簽署憑證,有時稱為 devtest 憑證。 第一次在本機計算機上啟動應用程式時,系統會提示您信任憑證的提示。 這適用於開發和測試,但當您部署至 Azure 並在自定義網域上公開應用程式時,您必須切換至證書頒發機構單位 (CA) 所簽發的憑證,無論是 Azure 或第三方 CA。

Azure 中的部署選項安全性

許多 Azure 服務都會自動處理憑證管理來簡化設定和管理負擔。 在 Azure 中設定容器 TLS 的組態和程式取決於您部署的服務。

一般而言,Azure 服務可以支持多種取得和儲存憑證的方式。 您可以從 Azure 自己的證書頒發機構單位 (CA) 取得受信任的憑證,或上傳第三方 CA 所簽發的私人信任憑證。 您可以使用服務自己的證書存儲,或使用 Azure Key Vault 來儲存憑證,以及其他秘密。

下表顯示的服務包含了說明當您部署至這些服務時 HTTPS 安全性運作方式的連結,以及管理憑證的指南。

Azure 服務 筆記
Azure 應用程式服務 Azure App Service 是適用於單一容器的合適部署服務,可提供預設體驗,這表示您使用 Azure 所提供的受信任憑證取得安全端點,而不會產生任何額外的額外負荷。 若要獲得更大的控制,您可以選擇多個選項來取得和儲存憑證。 您可以使用從第三方 CA 取得的自有信任憑證,而不是 Azure 所提供的預設信任憑證。 您可以選擇性地將憑證儲存在 Azure Key Vault 中。 請參閱 App Service TLS 概觀
Azure Container Apps(Azure 容器應用) Azure Container Apps 是適合使用一或多個容器的容器化應用程式裝載服務。 如同 Azure App Service,它提供預設體驗,其會自動使用受信任的 Azure 提供的憑證,但也提供一系列網路架構選項來支援不同的案例。 請參閱 Azure Container Apps 中的網路功能。
Azure 容器實例 若要為載入於 Azure 容器實例中的容器設定 HTTPS 公用端點,請參閱 在 sidecar 容器中啟用 TLS 端點。 此選項會將對容器本身的影響降到最低。
Azure Kubernetes Service (AKS) 請參閱 AKS 檔中的 指引,以設定輸入叢集的 TLS。 AKS 提供最先進的管理功能、處理憑證輪替和更新,具有最大的彈性。
Azure 服務 筆記
Azure 應用程式服務 Azure App Service 是適用於單一容器的合適部署服務,可提供預設體驗,這表示您使用 Azure 所提供的受信任憑證取得安全端點,而不會產生任何額外的額外負荷。 若要獲得更大的控制,您可以選擇多個選項來取得和儲存憑證。 您可以使用從第三方 CA 取得的自有信任憑證,而不是 Azure 所提供的預設信任憑證。 您可以選擇性地將憑證儲存在 Azure Key Vault 中。 請參閱 App Service TLS 概觀
Azure Container Apps(Azure 容器應用) Azure Container Apps 是適合使用一或多個容器的容器化應用程式裝載服務。 如同 Azure App Service,它提供預設體驗,其會自動使用受信任的 Azure 提供的憑證,但也提供一系列網路架構選項來支援不同的案例。 請參閱 Azure Container Apps 中的網路功能。
Azure 容器實例 若要為載入於 Azure 容器實例中的容器設定 HTTPS 公用端點,請參閱 在 sidecar 容器中啟用 TLS 端點。 此選項會將對容器本身的影響降到最低。
Service Fabric(服務結構) 請參閱 Service Fabric 應用程式和服務安全性。 您通常會設定反向 Proxy 來處理傳入要求的安全性。 請參閱 Azure Service Fabric 中的反向 Proxy。
Azure Kubernetes Service (AKS) 請參閱 AKS 檔中的 指引,以設定輸入叢集的 TLS。 AKS 提供最先進的管理功能、處理憑證輪替和更新,具有最大的彈性。

多個容器的網路安全性選項

如果您的情境涉及多個容器,您可以選擇僅保護進入的網路流量(即在對外的負載均衡器或反向代理處),或者您可以在應用程式中每個容器之間實現安全通信。 第二個選項為系統更深層層提供安全性,即使外部層有缺口也一樣。 針對所有容器對容器通訊使用 HTTPS 超出本文的範圍。

針對 Azure Container Apps,您可以設定針對外部呼叫端使用 HTTPS 的輸入,並在多個容器的網路內,使用 HTTP 或 TCP。 為了實現容器之間的安全通訊,您可以使用 mTLS(雙向 TLS),這種技術需要在請求的用戶端和伺服器雙方都提供憑證,或者在微服務之間進行憑證驗證。 請參閱 azure Container Apps 中的 輸入在 Azure Container Apps中設定用戶端憑證驗證。