共用方式為


自訂網域名稱,並在 Azure 容器應用程式中使用您自己的憑證

Azure 容器應用程式可讓您將一或多個自訂網域繫結至容器應用程式。

  • 每個網域名稱都必須與 TLS/SSL 憑證相關聯。 您可以上傳自己的憑證,或使用免費受控憑證
  • 憑證會套用至容器應用程式環境,並繫結至個別容器應用程式。 您必須具備環境的角色型存取權,才能新增憑證。
  • 需要 SNI(伺服器名稱識別)網域憑證
  • 容器應用程式必須啟用輸入。

注意

如果您設定 自定義環境 DNS(功能變數名稱系統)後綴,則無法將包含此後綴的自定義網域新增至您的容器應用程式。

新增自訂網域和憑證

重要

如果您使用新的憑證,您必須有現有的 SNI 網域憑證 檔案可供上傳至 Azure。

  1. 瀏覽至您 Azure 入口網站中的容器應用程式

  2. 選取 [設定] 區段中的 [輸入],確認您的應用程式已啟用輸入。 如果未啟用輸入,請使用下列步驟加以啟用:

    1. 將 [HTTP 輸入] 設定為 [已啟用]
    2. 選取所需的輸入流量設定。
    3. 輸入目標連接埠
    4. 選取 [儲存]。
  3. 在 [設定] 區段之下,選取 [自訂網域]

  4. 選取 [新增自訂網域] 按鈕。

  5. 在 [新增自訂網域和憑證] 視窗的 [TLS/SSL 憑證] 中,選取 [使用您自己的憑證]

  6. 在 [網域] 中,輸入您要新增的網域。

  7. 選取 [新增憑證]

  8. 在 [新增憑證] 視窗的 [憑證名稱] 中,輸入此憑證的名稱。

  9. 在 [憑證檔案] 區段中,瀏覽尋找您要上傳的憑證檔案。

  10. 選取驗證

  11. 驗證成功時,請選取 [新增]

  12. 在 [新增自訂網域和憑證] 視窗的 [憑證] 中,選取您剛才新增的憑證。

  13. 根據您的網域類型,選取 [主機名稱記錄類型]

    網域類型 記錄類型 備註
    Apex 網域 記錄 Apex 網域是網域根層級的網域。 例如,如果您的 DNS (功能變數名稱系統) 區域是 contoso.com,則 contoso.com 為頂點網域。
    子網域 CNAME 子網域是屬於另一個網域的網域。 例如,如果您的 DNS 區域為 contoso.com,則 www.contoso.com 是可在區域中設定的子網域範例。
  14. 使用裝載網域的 DNS 提供者,根據您使用 [網域驗證] 區段中顯示的值所選擇的 [主機名稱記錄類型] 建立 DNS 記錄。 記錄會將網域指向您的容器應用程式,並驗證您是否擁有它。 安裝程式取決於您是否使用自訂網域搭配私人端點 (預覽) 功能:

    • 如果您選取 [A 記錄],請建立下列 DNS 記錄:

      記錄類型 Host
      A @ Container Apps 環境的IP位址。
      TXT asuid 網域驗證碼。
    • 如果您選取 CNAME,請建立下列 DNS 記錄:

      記錄類型 Host
      CNAME 子網域 (例如,www) 容器應用程式的產生網域。
      TXT asuid. 後面接著子網域 (例如,asuid.www) 網域驗證碼。
  15. 請按一下 [驗證] 按鈕。

  16. 驗證成功時,請選取 [新增] 按鈕。

  17. 作業完成之後,您會在自訂網域清單中看到您的網域名稱,其狀態為 [安全]。 瀏覽至您的網域,以驗證它是否可以存取。

注意

針對內部 Container Apps 環境中的容器應用程式, 需要額外的設定 ,才能搭配 VNET 範圍輸入使用自定義網域。

容器應用程式支援 Apex 網域和子網域。 每個網域類型都需要不同的 DNS 記錄類型和驗證方法。

網域類型 記錄類型 驗證方法 備註
Apex 網域 記錄 HTTP Apex 網域是網域根層級的網域。 例如,如果您的 DNS 區域為 contoso.com,則 contoso.com 為 Apex 網域。
子網域 CNAME CNAME 子網域是屬於另一個網域的網域。 例如,如果您的 DNS 區域為 contoso.com,則 www.contoso.com 是可在區域中設定的子網域範例。
  1. 使用 Azure CLI 登入 Azure。

    az login
    
  2. 接下來,安裝 CLI 的 Azure 容器應用程式擴充功能。

    az extension add --name containerapp --upgrade
    
  3. 設定下列環境變數。 <PLACEHOLDERS>將取代為您的值。

    RESOURCE_GROUP = "<RESOURCE_GROUP>"
    CONTAINER_APP = "<CONTAINER_APP>"
    ENVIRONMENT = "<ENVIRONMENT>"
    TARGET_PORT = "<TARGET_PORT>"
    DOMAIN_NAME = "<DOMAIN_NAME>"
    CERTIFICATE_LOWERCASE_NAME = "<CERTIFICATE_LOWERCASE_NAME>"
    CERTIFICATE_LOCAL_PATH = "<CERTIFICATE_LOCAL_PATH>"
    CERTIFICATE_PASSWORD = "<CERTIFICATE_PASSWORD>"
    
    • 以憑證檔案的本機路徑取代 <CERTIFICATE_LOCAL_PATH>
    • 將取代 <CERTIFICATE_LOWERCASE_NAME> 為環境中唯一的小寫憑證名稱。
    • 將取代 <TARGET_PORT> 為您容器應用程式正在接聽的埠。
  4. 確認您的容器應用程式已啟用 HTTP 輸入。

    az containerapp ingress show \
        -n $CONTAINER_APP \
        -g $RESOURCE_GROUP
    

    如果未啟用輸入,請使用下列步驟加以啟用:

    az containerapp ingress enable \
        -n $CONTAINER_APP \
        -g $RESOURCE_GROUP \
        --type external \
        --target-port $TARGET_PORT \
        --transport auto
    
  5. 如果您要設定 Apex 網域,請取得容器應用程式環境的 IP 位址。

    az containerapp env show \
        -n $ENVIRONMENT \
        -g $RESOURCE_GROUP \
        -o tsv \
        --query "properties.staticIp"
    
  6. 如果您要設定子網域,請取得容器應用程式的自動產生網域。

    az containerapp show \
        -n $CONTAINER_APP \
        -g $RESOURCE_GROUP \
        -o tsv \
        --query "properties.configuration.ingress.fqdn"
    
  7. 取得網域驗證碼。

    az containerapp show \
        -n $CONTAINER_APP \
        -g $RESOURCE_GROUP \
        -o tsv \
        --query "properties.customDomainVerificationId"
    
  8. 使用裝載網域的 DNS 提供者,根據您使用 [網域驗證] 區段中顯示的值所選擇的記錄類型建立 DNS 記錄。 記錄會將網域指向您的容器應用程式,並驗證您是否擁有它。 安裝程式取決於您是否使用自訂網域搭配私人端點 (預覽) 功能:

    • 如果您選取 [A 記錄],請建立下列 DNS 記錄:

      記錄類型 Host
      A @ Container Apps 環境的IP位址。
      TXT asuid 網域驗證碼。
    • 如果您選取 CNAME,請建立下列 DNS 記錄:

      記錄類型 Host
      CNAME 子網域 (例如,www) 容器應用程式的產生網域。
      TXT asuid. 後面接著子網域 (例如,asuid.www) 網域驗證碼。
  9. 將憑證上傳至您的環境。

    az containerapp env certificate upload \
        -g $RESOURCE_GROUP \
        --name $ENVIRONMENT \
        --certificate-file $CERTIFICATE_LOCAL_PATH \
        --password $CERTIFICATE_PASSWORD \
        --certificate-name $CERTIFICATE_LOWERCASE_NAME
    
  10. 將憑證和網域系結至您的容器應用程式。

    az containerapp hostname bind \
        --hostname $DOMAIN_NAME \
        -g $RESOURCE_GROUP \
        -n $CONTAINER_APP \
        --environment $ENVIRONMENT \
        --certificate $CERTIFICATE_LOWERCASE_NAME \
        --validation-method <VALIDATION_METHOD>
    
    • 如果您要設定 A 記錄,請將 <VALIDATION_METHOD> 取代為 HTTP

    • 如果您要設定 CNAME,請將 <VALIDATION_METHOD> 取代為 CNAME

    可能需要幾分鐘的時間才能發出憑證,並將網域新增至您的容器應用程式。

  11. 作業完成後,請瀏覽至您的網域以驗證它是否可以存取。

管理憑證

您可以透過容器應用程式環境或個別容器應用程式來管理憑證。

Environment

容器應用程式環境的 [憑證] 視窗會顯示與環境相關聯的所有憑證資料表。

您可以透過下列動作來管理憑證:

動作 描述
選取 [新增憑證] 連結以新增憑證。
刪除 選取垃圾桶圖示以移除憑證。
更新 在到期日 60 天內,資料表的 [健全狀態] 欄位會指出憑證即將到期。 若要更新憑證,請選取 [更新憑證] 連結以上傳新的憑證。

容器應用程式

容器應用程式的 [自訂網域] 視窗會顯示與容器應用程式相關聯的自訂網域清單。

您可以選取省略號 (...) 按鈕來管理個別功能變數名稱的憑證,這會開啟憑證繫結視窗。 從下列視窗中,您可以選取要繫結至所選功能變數名稱的憑證。

下一步