Azure Container Apps を使用すると、1 つ以上のカスタム ドメインをコンテナー アプリにバインドできます。 カスタム ドメインに無料のマネージド証明書を自動的に構成できます。
独自の証明書を使用してカスタム ドメインを設定する場合は、「Azure Container Apps のカスタム ドメイン名と証明書」を参照してください。
Note
カスタム環境の DNS サフィックスを構成する場合、このサフィックスを含むカスタム ドメインをコンテナー アプリに追加することはできません。
無料の証明書の要件
Azure Container Apps には、カスタム ドメイン用に無料のマネージド証明書が用意されています。 この TLS/SSL サーバー証明書は、アプリがマネージド証明書の要件を満たし続ける限り、何も操作する必要はなく、自動的に更新されます。
要件は次のとおりです。
HTTP イングレスを有効にし、コンテナー アプリがパブリックにアクセスできるようにします。
Container Apps 環境の IP アドレスを指す apex ドメインの A レコードが必要です。
コンテナー アプリの生成されたドメイン名に直接マップされるサブドメインの CNAME レコードを設定します。 中間 CNAME 値にマッピングすると、証明書の発行と更新がブロックされます。 CNAME 値の例としては、トラフィック マネージャー、Cloudflare、同様のサービスがあります。
Note
証明書の発行とその後の更新を確実に成功させるには、マネージド証明書が割り当てられているときは常にすべての要件が満たされている必要があります。
カスタム ドメインとマネージド証明書を追加する
Azure portal のコンテナー アプリに移動します。
[設定] セクションで [イングレス] を選択して、アプリで HTTP イングレスが有効になっていることを確認します。 イングレスが有効になっていない場合は、次の手順で有効にします。
- [HTTP イングレス] を [有効] に設定します。
- 目的の [イングレス トラフィック] 設定を選択します。
- [ターゲット ポート] を入力します。
- [保存] を選択します。
"[設定]" セクションで [カスタム ドメイン] をクリックします。
[カスタム ドメインの追加] を選択します。
[カスタム ドメインと証明書の追加] ウィンドウの [TLS/SSL 証明書] で、[マネージド証明書] を選択します。
[ドメイン] に、追加するドメインを入力します。
ドメインの種類に基づいて [ホスト名レコード タイプ] を選択します。
ドメインの種類 レコードの種類 メモ Apex ドメイン A レコード APEX ドメインは、ご自分のドメインのルート レベルのドメインです。 たとえば、DNS ゾーンが contoso.com
の場合、contoso.com
は APEX ドメインです。Subdomain CNAME サブドメインは、別のドメインに含まれるドメインです。 たとえば、DNS ゾーンが contoso.com
の場合、www.contoso.com
はそのゾーン内で構成できるサブドメインの例です。ドメインをホストしている DNS プロバイダーを使用し、[ドメインの検証] セクションに示されている値を使用して、選択した [ホスト名レコード タイプ] に基づいて DNS レコードを作成します。 レコードがドメインがコンテナー アプリを指すようにし、自分が所有者であることを確認します。
[A レコード] を選択した場合は、次の DNS レコードを作成します。
レコード タイプ Host 値 A @
Container Apps 環境の IP アドレス。 TXT asuid
ドメイン検証コード。 [CNAME] を選択した場合は、次の DNS レコードを作成します。
レコード タイプ Host 値 CNAME サブドメイン (例: www
)コンテナー アプリの生成されたドメイン。 TXT asuid.
その後にサブドメインが続く (例:asuid.www
)ドメイン検証コード。
[Validate] を選択します。
検証が成功したら、[追加] を選択します。
証明書の発行とコンテナー アプリへのドメインの追加には数分かかる場合があります。
操作が完了すると、ドメイン名が、カスタム ドメインの一覧に [セキュリティで保護] の状態で表示されます。 ドメインに移動して、アクセス可能であることを確認します。
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 はそのゾーン内で構成できるサブドメインの例です。 |
Azure CLI を使用して Azure にログインします。
az login
次に、CLI 用の Azure Container Apps 拡張機能をインストールします。
az extension add --name containerapp --upgrade
以下の環境変数を設定します。
<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>
を、コンテナー アプリがリッスンしているポートに置き換えます。
-
コンテナー アプリで 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
APEX ドメインを構成する場合は、Container Apps 環境の IP アドレスを取得します。
az containerapp env show \ -n $ENVIRONMENT \ -g $RESOURCE_GROUP \ -o tsv \ --query "properties.staticIp"
サブドメインを構成する場合は、コンテナー アプリの自動生成されたドメインを取得します。
az containerapp show \ -n $CONTAINER_APP \ -g $RESOURCE_GROUP \ -o tsv \ --query "properties.configuration.ingress.fqdn"
ドメイン検証コードを取得します。
az containerapp show \ -n $CONTAINER_APP \ -g $RESOURCE_GROUP \ -o tsv \ --query "properties.customDomainVerificationId"
ドメインをホストしている DNS プロバイダーを使用し、[ドメインの検証] セクションに示されている値を使用して、選択したレコード タイプに基づいて DNS レコードを作成します。 このレコードで、ドメインをコンテナー アプリにポイントし、自分が所有していることを確認します。 セットアップは、プライベート エンドポイント (プレビュー) 機能でカスタム ドメインを使用しているかどうかによって異なります:
[A レコード] を選択した場合は、次の DNS レコードを作成します。
レコード タイプ Host 値 A @
Container Apps 環境の IP アドレス。 TXT asuid
ドメイン検証コード。 [CNAME] を選択した場合は、次の DNS レコードを作成します。
レコード タイプ Host 値 CNAME サブドメイン (例: www
)コンテナー アプリの生成されたドメイン。 TXT asuid.
その後にサブドメインが続く (例:asuid.www
)ドメイン検証コード。
コンテナー アプリにドメインを追加します。
az containerapp hostname add \ --hostname $DOMAIN_NAME \ -g $RESOURCE_GROUP \ -n $CONTAINER_APP
マネージド証明書を構成し、ドメインをコンテナー アプリにバインドします。
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
に置き換えます。
証明書の発行とコンテナー アプリへのドメインの追加には数分かかる場合があります。
操作が完了したら、ご自分のドメインに移動してアクセス可能であることを確認します。