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

Azure Container Apps を使用すると、1 つ以上のカスタム ドメインをコンテナー アプリにバインドできます。 カスタム ドメインに無料のマネージド証明書を自動的に構成できます。

独自の証明書を使用してカスタム ドメインを設定する場合は、「Azure Container Apps のカスタム ドメイン名と証明書」を参照してください。

Note

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

無料の証明書の要件

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

要件は次のとおりです。

  • コンテナー アプリは、HTTP イングレスが有効になっていると、パブリックにアクセスできます。

  • APEX ドメインの場合は、Container Apps 環境の IP アドレスを指す A レコードが必要です。

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

Note

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

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

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

  2. [設定] セクションで [イングレス] を選択して、アプリで HTTP イングレスが有効になっていることを確認します。 イングレスが有効になっていない場合は、次の手順で有効にします。

    1. [HTTP イングレス][有効] に設定します。
    2. 目的の [イングレス トラフィック] 設定を選択します。
    3. [ターゲット ポート] を入力します。
    4. [保存] を選択します。
  3. "[設定]" セクションで [カスタム ドメイン] をクリックします。

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

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

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

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

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

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

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

      レコード タイプ Host
      CNAME サブドメイン (例: www) コンテナー アプリの自動生成された <appname>.<region>.azurecontainerapps.io ドメイン
      TXT asuid. その後にサブドメインが続く (例: asuid.www) ドメイン検証コード
  9. [Validate] を選択します。

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

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

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

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

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

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

    az extension add --name containerapp --upgrade
    
  3. コンテナー アプリで HTTP イングレスが有効になっていることを確認します。

    az containerapp ingress show -n <CONTAINER_APP_NAME> -g <RESOURCE_GROUP_NAME>
    

    イングレスが有効になっていない場合は、次の手順で有効にします。

    az containerapp ingress enable -n <CONTAINER_APP_NAME> -g <RESOURCE_GROUP_NAME> \
            --type external --target-port <TARGET_PORT> --transport auto
    

    <CONTAINER_APP_NAME> をコンテナー アプリの名前に、<RESOURCE_GROUP_NAME> をコンテナー アプリが含まれるリソース グループの名前に、<TARGET_PORT> をコンテナー アプリでリッスンするポートに置き換えます。

  4. APEX ドメインを構成する場合は、Container Apps 環境の IP アドレスを取得します。

    az containerapp env show -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP_NAME> -o tsv --query "properties.staticIp"
    

    <ENVIRONMENT_NAME> を環境の名前に、<RESOURCE_GROUP_NAME> を環境が含まれるリソース グループの名前に置き換えます。

  5. サブドメインを構成する場合は、コンテナー アプリの自動生成されたドメインを取得します。

    az containerapp show -n <CONTAINER_APP_NAME> -g <RESOURCE_GROUP_NAME> -o tsv --query "properties.configuration.ingress.fqdn"
    

    <CONTAINER_APP_NAME> をコンテナー アプリの名前に、<RESOURCE_GROUP_NAME> をコンテナー アプリが含まれるリソース グループの名前に置き換えます。

  6. ドメイン検証コードを取得します。

    az containerapp show -n <CONTAINER_APP_NAME> -g <RESOURCE_GROUP_NAME> -o tsv --query "properties.customDomainVerificationId"
    

    <CONTAINER_APP_NAME> をコンテナー アプリの名前に、<RESOURCE_GROUP_NAME> をコンテナー アプリが含まれるリソース グループの名前に置き換えます。

  7. ドメインをホストしている DNS プロバイダーを使用し、[ドメインの検証] セクションに示されている値を使用して、選択したレコード タイプに基づいて DNS レコードを作成します。 このレコードで、ドメインをコンテナー アプリにポイントし、自分が所有していることを確認します。

    • APEX ドメインを構成する場合は、次の DNS レコードを作成します。

      レコード タイプ Host
      A @ Container Apps 環境の IP アドレス
      TXT asuid ドメイン検証コード
    • サブドメインを構成する場合は、次の DNS レコードを作成します。

      レコード タイプ Host
      CNAME サブドメイン (例: www) コンテナー アプリの自動生成された ドメイン
      TXT asuid. その後にサブドメインが続く (例: asuid.www) ドメイン検証コード
  8. コンテナー アプリにドメインを追加します。

    az containerapp hostname add --hostname <DOMAIN_NAME> -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME>
    

    <DOMAIN_NAME> を追加するドメインの名前に、<RESOURCE_GROUP_NAME> をコンテナー アプリが含まれるリソース グループの名前に、<CONTAINER_APP_NAME> をコンテナー アプリの名前に置き換えます。

  9. マネージド証明書を構成し、ドメインをコンテナー アプリにバインドします。

    az containerapp hostname bind --hostname <DOMAIN_NAME> -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --environment <ENVIRONMENT_NAME> --validation-method <VALIDATION_METHOD>
    

    <DOMAIN_NAME> を追加するドメインの名前に、<RESOURCE_GROUP_NAME> をコンテナー アプリが含まれるリソース グループの名前に、<CONTAINER_APP_NAME> をコンテナー アプリの名前に、<ENVIRONMENT_NAME> を環境の名前に置き換えます。

    • A レコードを構成する場合は、<VALIDATION_METHOD>HTTP に置き換えます。
    • CNAME を構成する場合は、<VALIDATION_METHOD>CNAME に置き換えます。

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

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

次のステップ