次の方法で共有


Azure Container Apps のカスタム ドメイン名と無料のマネージド証明書

Azure Container Apps を使用すると、1 つ以上のカスタム ドメインをコンテナー アプリにバインドできます。 DigiCert IP アドレスからコンテナー アプリにパブリックにアクセスできる場合は、カスタム ドメインの無料のマネージド証明書を自動的に構成できます。

独自の証明書を使用するカスタム ドメインを設定する場合は、「 カスタム ドメイン名」を参照し、Azure Container Apps で独自の証明書を使用します

注意

カスタム環境の DNS サフィックスを構成する場合、このサフィックスを含むカスタム ドメインをコンテナー アプリに追加することはできません。

無料の証明書の要件

Container Apps には、カスタム ドメイン用の無料のマネージド証明書が用意されています。 アプリがマネージド証明書の要件を引き続き満たしている限り、この TLS/SSL サーバー証明書は自動的に更新されます。

要件は次のとおりです。

  • HTTP イングレスを有効にし、 DigiCert IP アドレスからコンテナー アプリにパブリックにアクセスできることを確認します。

  • Container Apps 環境の IP アドレスを指す、Apex ドメインの A レコードを確保します。

  • コンテナー アプリの生成されたドメイン名に直接マップされるサブドメインの CNAME レコードを設定します。 中間 CNAME 値にマッピングすると、証明書の発行と更新がブロックされます。 CNAME 値の例としては、トラフィック マネージャー、Cloudflare、同様のサービスがあります。

  • ルート ドメインに証明機関承認 (CAA) ドメイン レコードが存在する場合は、値が0 issue digicert.comの CAA ドメイン レコードを作成して、DigiCert を証明書発行者として明示的に許可する必要があります。 この設定がないと、証明書の発行と更新は失敗します。

注意

証明書の発行とその後の更新が正常に進むには、マネージド証明書が割り当てられているときにすべての要件を常に満たす必要があります。

カスタム ドメインとマネージド証明書を追加する

  1. Azure portal でコンテナー アプリに移動します。

  2. 左側のウィンドウの [ネットワーク] セクションで [イングレス] を選択して、アプリで HTTP イングレスが有効になっていることを確認します。 イングレスが有効になっていない場合は、次の手順で有効にします。

    1. [イングレス][有効] に設定します。
    2. 目的の イングレス トラフィック 設定を選択します。
    3. イングレスの種類HTTP に設定します。
    4. [ターゲット ポート] を入力します。
    5. [保存] を選択します。
  3. 左側 ウィンドウの [ネットワーク] で、[ カスタム ドメイン] を選択します。

  4. [カスタム ドメインの追加] を選択します。

  5. [ カスタム ドメインと証明書の追加 ] ウィンドウで、 TLS/SSL 証明書[マネージド証明書] を選択します。

  6. [ ドメイン ] ボックスに、追加するドメインを入力します。

  7. ドメインの種類に基づいて、 ホスト名レコードの種類を選択します。

    ドメインの種類 レコードの種類 メモ
    Apex ドメイン A レコード APEX ドメインは、ご自分のドメインのルート レベルのドメインです。 たとえば、DNS ゾーンが contoso.com の場合、contoso.com は APEX ドメインです。
    サブドメイン CNAME サブドメインは、別のドメインの一部であるドメインです。 たとえば、DNS ゾーンが contoso.com の場合、www.contoso.com はそのゾーン内で構成できるサブドメインの例です。
  8. ドメインをホストしている DNS プロバイダーを使用して、[ドメインの検証] セクションに示されている値を使用して選択したホスト名レコードの種類に基づいて DNS レコードを作成します。 ドメインをコンテナー アプリに向けるためのレコードを指定し、自分がその所有者であることを確認します。

    • [A レコード] を選択した場合は、次の DNS レコードを作成します。

      レコードの種類 ホスト
      A @ Container Apps 環境の IP アドレス。
      TXT asuid ドメイン検証コード。
    • [CNAME] を選択した場合は、次の DNS レコードを作成します。

      レコードの種類 ホスト
      CNAME サブドメイン (たとえば、 www)。 コンテナー アプリの生成されたドメイン。
      TXT asuid. サブドメイン (たとえば、 asuid.www) が続きます。 ドメイン検証コード。
  9. [Validate] を選択します。

  10. 検証が成功したら、[追加] を選択 します

    証明書の発行とコンテナー アプリへのドメインの追加には数分かかる場合があります。

  11. 操作が完了すると、状態が [セキュリティで保護された] のカスタム ドメインの一覧にドメイン名が表示されます。 ドメインに移動して、アクセス可能であることを確認します。

Container Apps では、APEX ドメインとサブドメインがサポートされています。 ドメインの種類ごとに、異なる DNS レコードの種類と検証方法が必要です。

ドメインの種類 レコードの種類 Validation method (検証方法) メモ
Apex ドメイン A レコード HTTP APEX ドメインは、ご自分のドメインのルート レベルのドメインです。 たとえば、DNS ゾーンが contoso.com の場合、contoso.com は APEX ドメインです。
サブドメイン CNAME CNAME サブドメインは、別のドメインの一部であるドメインです。 たとえば、DNS ゾーンが contoso.com の場合、www.contoso.com はそのゾーン内で構成できるサブドメインの例です。
  1. Azure CLI を使用して Azure にサインインします。

    az login
    
  2. CLI 用の Container Apps 拡張機能をインストールします。

    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. 頂点ドメインを構成する場合は、Container Apps 環境の 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 レコードを作成します。

      レコードの種類 ホスト
      A @ Container Apps 環境の IP アドレス。
      TXT asuid ドメイン検証コード。
    • [CNAME] を選択した場合は、次の DNS レコードを作成します。

      レコードの種類 ホスト
      CNAME サブドメイン (たとえば、 www)。 コンテナー アプリの生成されたドメイン。
      TXT asuid. サブドメイン (たとえば、 asuid.www) が続きます。 ドメイン検証コード。
  9. コンテナー アプリにドメインを追加します。

    az containerapp hostname add \
        --hostname $DOMAIN_NAME \
        -g $RESOURCE_GROUP \
        -n $CONTAINER_APP
    
  10. マネージド証明書を構成し、ドメインをコンテナー アプリにバインドします。

    az containerapp hostname bind \
        --hostname $DOMAIN_NAME \
        -g $RESOURCE_GROUP \
        -n $CONTAINER_APP \
        --environment $ENVIRONMENT \
        --validation-method <VALIDATION_METHOD>
    
    • A レコードを構成する場合は、<VALIDATION_METHOD>HTTP に置き換えます。

    • CNAME を構成する場合は、<VALIDATION_METHOD>CNAME に置き換えます。

    証明書の発行とコンテナー アプリへのドメインの追加には数分かかる場合があります。

  11. 操作が完了したら、ドメインに移動してアクセス可能であることを確認します。

次のステップ